在条件下检索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])