在条件下检索html页面的内容(使用python lxml)
我会告诉你我的问题。(对不起我的英语) 我必须每天连接到服务器以检索内容 我正在连接的页面的格式如下:在条件下检索html页面的内容(使用python lxml),python,html,parsing,lxml,Python,Html,Parsing,Lxml,我会告诉你我的问题。(对不起我的英语) 我必须每天连接到服务器以检索内容 我正在连接的页面的格式如下: <tr><td><a href='https://www.test.com/thing1.xlsx' target='_blank'>thing1.xlsx</a><td>01 September 2019 10:02:03 /td><td>1 KB</td></tr> <tr>&
<tr><td><a href='https://www.test.com/thing1.xlsx' target='_blank'>thing1.xlsx</a><td>01 September 2019 10:02:03 /td><td>1 KB</td></tr>
<tr><td><a href='https://www.test.com/thing2.pdf' target='_blank'>thing2.pdf</a><td>02 September 2019 10:02:03 /td><td>1 KB</td></tr>
<tr><td><a href='https://www.test.com/thing test 3.pdf' target='_blank'>thing test 3.pdf</a><td>04 September 2019 10:02:03 /td><td>1 KB</td></tr>
<tr><td><a href='https://www.test.com/thing test 4.pdf' target='_blank'>thing test 4.pdf</a><td>04 September 2019 10:02:04 /td><td>1 KB</td></tr>
<tr><td><a href='https://www.test.com/thing test 5.pdf' target='_blank'>thing test 5.pdf</a><td>04 September 2019 10:02:05 /td><td>1 KB</td></tr>
我可以得到我的网址,但不能在今天的日期。有什么想法吗?对我来说,最好的方法是使用美丽的汤库,您可以找到以下详细信息: 在您的特定情况下(在html中获取日期),此代码应该是有效的:
from bs4 import BeautifulSoup
soup = BeautifulSoup(open('test.html'), 'html.parser')
for tag in soup.find_all('tr'):
print (tag.find_all('td')[1].text)
如果您想检查它是否从今天开始。
最好的方法是将日期字符串转换为datetime对象,并按今天的日期进行检查。我尝试了您的解决方案,但不幸的是它不起作用:(我没有结果,您确定吗?我的解决方案是:列表日期包含所有日期tds。不幸的是,在服务器上找不到漂亮的汤(我在redhat上)并且它与internet(代理)断开,所以我无法下载。你还有其他想法吗?@Prodiguy检查一下,也许有帮助:@Prodiguy你可以在上找到Beautiful Soup的最后一个源文件
from bs4 import BeautifulSoup
soup = BeautifulSoup(open('test.html'), 'html.parser')
for tag in soup.find_all('tr'):
print (tag.find_all('td')[1].text)
from lxml import etree, html
parser = etree.HTMLParser()
tree = etree.parse("test.html", parser)
URL = tree.xpath('//a/@href')
NAMEFILE = tree.xpath('//a/text()')
print URL
dates = []
example = "01 September 2019 10:02:03 /td>"
date_tds = tree.findall('.//td')
for i in date_tds:
if len(str(i.text)) == len(example):
dates.append(str(i.text).split(" 10")[0])
for index,i in enumerate(dates):
if "01 September 2019" in i:
print(URL[index])