无法在Di中返回文本

2024-09-30 10:33:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难让screpy从这个div返回文本,当它确实返回数据时,它的返回量远远超过了我的预期。在

目标HTML:

<div class="DivTimeSpan" title="Full Time">12:00 PM - 09:00 PM </div>

尝试1:

^{pr2}$

退货:

"\r\n\r\n ", "\r\n ", "\r\n \r\n\r\n var allowedUrls = [];\r\n allowedUrls.push(\"Login.net\");\r\n allowedUrls.push(\"Login\");\r\n allowedUrls.push(\"AccountLogin.net\");\r\n allowedUrls.push(\"AccountLogin\");\r\n allowedUrls.push(\"CreateAccount\");\r\n allowedUrls.push(\"CreateAccount.net\");\r\n allowedUrls.push(\"UpdateAccount\");\r\n allowedUrls.push(\"UpdateAccount.net\");\r\n allowedUrls.push(\"CreateResellersAccount\");\r\n allowedUrls.push(\"CreateResellersAccount.net\");\r\n allowedUrls.push(\"CreateQqestSAASAccount\");\r\n
"11:00 AM - 09:00 PM", "12:00 PM - 09:00 PM", "12:00 PM - 09:00 PM", "12:00 PM - 09:00 PM", "12:00 PM - 09:00 PM"

整个文件可能有数千行长,包含的内容类似于我指定的div之外的文本

我理解了//text()返回元素及其子元素的文本。但是,我所针对的html元素没有任何子元素,所以我假设它只返回div中的数据

接下来,我尝试使用“/text()”。这是唯一的改变

尝试2:

    for sel in response.xpath("//div[@class='DivTimeSpan']"):
        s_item['schedule'] = sel.select('/text()').extract()
    return s_item

退货:

[{"schedule": []}]

期望结果:

[{"schedule": ["11:00 AM - 09:00 PM", "12:00 PM - 09:00 PM", "12:00 PM - 09:00 PM", "12:00 PM - 09:00 PM", "12:00 PM - 09:00 PM"]}]

我正在抓取的网址是在公司登录后面,所以我不能给出实际的网址。在

以利沙的帖子把我引向正确的方向,谢谢!!!:) 回答:

for sel in response.xpath("//div[@class='DivTimeSpan']"):
    s_item['schedule'] = map(unicode.strip,    sel.select('//div/text()').extract())
return s_item

Tags: 数据text文本div元素netloginitem
1条回答
网友
1楼 · 发布于 2024-09-30 10:33:24

第二次尝试更接近于提取值。但是,您需要从节点提取文本,而不是从文档根中提取文本:

s_item['schedule'] = sel.select('/div/text()').extract()[0]

如果文档包含更多标记(不是divs),您可以尝试:

^{pr2}$

相关问题 更多 >

    热门问题