小编sle*_*ner的帖子

Python Datetime Strptime错误:' - '是格式为'%-m - % - d-%y%-H:%M:%S'的错误指令

我知道有类似的问题,但它们似乎与datetime处理(或不处理)时区的方式有关.

设置有点复杂,可能与问题无关,但我认为按原样包含代码很重要,所以有一点背景:

我有一个数组字典.这些阵列中的每一个代表同一个人的"尝试",但是在不同时间发生.最终,我将会寻找最早的这些日期.这可能是一个迂回的解决方案,但我将所有日期转换为datetime对象,找到最早的,然后只使用该索引来取出第一次尝试:

以下是设置尝试日期时间数组的代码:

for key in duplicates_set.keys():
    attempt_dates = [datetime.strptime(attempt['Attempt Date'], "%-m-%-d-%y %-H:%M:%S") for attempt in duplicates_set[key]]
Run Code Online (Sandbox Code Playgroud)

这是原始日期字符串之一的格式:

12-5-2016 3:27:58 PM

我得到的回报是:

ValueError: '-' is a bad directive in format '%-m-%d-%y %-H:%M:%S'
Run Code Online (Sandbox Code Playgroud)

我假设这是指在'm','d'和'H'之前放置的破折号,因为它们是非零填充的小数.为什么告诉我这个?

python datetime

8
推荐指数
2
解决办法
2万
查看次数

Chrome JS控制台中的XPath搜索(“ $ x(...)”)输出数组(jQuery对象?)而不是HTML文本的部分(DOM元素?)

对于使用Chrome开发者工具/进行XPath搜索/这种编程,我是相对较新的人,因此请原谅任何不正确的术语或含糊不清的描述。我认为下面的屏幕截图将比我用有限的词汇所描述的内容更容易演示我在说什么。


我在寻找什么

当我开始使用开发人员工具搜索XPath时,使用“ $ x(...)”函数将返回html的一部分,然后我可以在控制台中进行导航或进行更具体的搜索以了解结构在提取文本之前。我的控制台不再以这种形式返回标记文本,但是我在另一个StackOverflow帖子中找到了一个示例,该示例足以显示我正在寻找的返回类型:

我会寻找什么

在使用更具体的XPath,提取等之前,我能够在控制台(突出显示的部分)中浏览此HTML文本以找到所需的部分。


我现在所看到的

我现在得到的是一个数组或一组嵌套数组。我认为这些是要返回的jQuery对象(可能在这里很遥远)。见下文:

我现在所看到的

我敢肯定,在许多情况下,导航该数组中的元素实际上比处理HTML更容易,而且作为一个很少接触Web开发的人,我敢肯定在这里我缺少一些东西。当有人在进行抓取项目时,只是想在页面上查找特定的元素或文本。这很难处理。


过去,作为一个虚构的示例,如果我试图从页面中提取不同种类的水果的名称,然后在控制台中键入...

$x('//*[@class="fruit"]/h1')
Run Code Online (Sandbox Code Playgroud)

...控制台将吐出类似以下内容的内容:

[<h1>Peach</h1>, <h1>Strawberry</h1>, <h1>Watermelon</h1>, <h1>Apple</h1>, <h1>Orange</h1>]
Run Code Online (Sandbox Code Playgroud)

然后,我是否跟进了...

$x('//*[@class="fruit"]/h1.text()')
Run Code Online (Sandbox Code Playgroud)

...控制台将吐出:

["Peach", "Strawberry", "Watermelon", "Apple", "Orange"]
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行这样的搜索,我将得到一个结果(不是字面的,而是这种形式),看起来像这样:

Array[2]0: form#aspnetForm0: input#__LASTFOCUS1: input#__EVENTTARGET2: input#__EVENTARGUMENT3: input#EktronClientManager4: input#__VIEWSTATE5: input#__VIEWSTATEGENERATOR6: input#__EVENTVALIDATION7: input#ctl00_Header_searchTextBox.searchterm8: input#ctl00_Header_searchButton.searchbtn9: fieldset10: input#ctl00_contentPlaceHolder_login_emailTextBox.max-width11: input#ctl00_contentPlaceHolder_login_passwordTextBox.max-width12: input#ctl00_contentPlaceHolder_login_rememberMeCheckBox13: input#ctl00_contentPlaceHolder_login_signInButton.button.green_events: etc, etc...
Run Code Online (Sandbox Code Playgroud)

就我的目的而言,使用该字符串数组要容易得多,因为我可以确切地确认从XPath搜索中得到的内容以及将元素移出站点后必须使用的内容。


抱歉,这篇文章可能会让真正有经验的Web程序员感到沮丧,因为我既缺少大图又缺少很多词汇。有人可以向我解释1.我怎么了?为什么在之前和之前获取HTML文本时,为什么要使这些数组充满数据?2.在JavaScript控制台中进行这种搜索时,如何恢复为返回HTML文本?

谢谢!


html javascript xpath web-scraping google-chrome-devtools

3
推荐指数
1
解决办法
3529
查看次数