gpt4 book ai didi

python - lxml web-scraping,特定单词提取

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:59 24 4
gpt4 key购买 nike

我正在使用自动化脚本来从局域网网站上抓取计数器,现在我正在抓狂。

代码如下所示

<TR><td><p align="left" style="margin-left: 30;"><b>title</b></p></td><td><p>   </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">table one</p></td><td><p> Task&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;average </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;"></p></td><td><p> number&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">1-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C</p></td><td><p> 6490&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">2-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C</p></td><td><p> 442&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">5-10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C</p></td><td><p> 44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6 </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">11-20&nbsp;&nbsp;&nbsp;&nbsp;C</p></td><td><p> 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15 </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">21-30&nbsp;&nbsp;&nbsp;&nbsp;C</p></td><td><p> 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25 </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">31-50&nbsp;&nbsp;&nbsp;&nbsp;C</p></td><td><p> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40 </p></td>
</TR>
<TR><td><p align="left" style="margin-left: 40;">sum</p></td><td><p> 6982&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 </p></td>
</TR>

所以在每个网站中我都有相同的单词重复,例如 1-2、2-4、5-10 等,并且我想提取“下面”的数字,例如 6490、442按照特定的顺序,所以它应该看起来像

task - counter
1-1 = 6490
2-4 = 442

为此我使用

import requests
from lxml import html

pageContent=requests.get(
'http://x.html')
tree = html.fromstring(pageContent.content)
scraped = tree.xpath('//p/text()')
print scraped

女巫显然打印了这样的东西\xa0\xa0\xa0\xa0\xa0task',u'1-1\xa0\xa0\xa0\xa0\xa0\xa0counter',u'6490

我被困住了...尝试使用其他方法但失败了。

最佳答案

试试这个。它会为您获取上面提到的确切输出。这里的 content 是上面粘贴的 html 元素的容器。

from lxml.html import fromstring
root = fromstring(content)
for items in root.cssselect("tr")[3:]:
data = [' '.join(item.text_content().split()).split(" ")[0] for item in items.cssselect("td")]
print(' = '.join(data))

输出:

1-1 = 6490
2-4 = 442
5-10 = 44
11-20 = 3
21-30 = 2
31-50 = 1
sum = 6982

关于python - lxml web-scraping,特定单词提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48498910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com