else: href = 'https:' + href response_deep = requests.get(url=href, headers=headers) # 这里源代码和element是一样的,我们继续用xpath tree_deep=etree.HTML(response_deep.text) date_list=tree_deep.xpath( '//*[@id="main"]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/span[2]/text()’) date = ''.join(date_list) # 获取的时间为某年某月某日的形式,将它与上面获取的时间格式统一 if ('年' in date) and ('月' in date) and ('日' in date): num1 = date.split('年')[0] num2 = date.split('年')[-1].split('月')[0]
时间: 2024-02-14 20:09:36 浏览: 71
如果该链接不是以“.html”结尾的,则认为该链接是帖子内部的图片或其他资源链接,需要在链接前面加上“https:”,然后发送请求获取返回的源代码。因为这种类型的链接的源代码和之前获取的element是一样的,所以继续使用xpath进行信息提取。获取到的时间为某年某月某日的形式,需要将其与之前获取的时间格式进行统一,即转换为标准格式(年-月-日)。
相关问题
url_list = div.xpath('.//a[2]/@href') url_list = url_list[0] if url_list else None detail_url = 'https:' + str(url_list) detail_response = requests.get(url=detail_url, headers=headers).text detail_tree = etree.HTML(detail_response)
根据您提供的代码,可能是因为 `url_list` 变量在某些情况下可能是 `None`,因此在调用 `str(url_list)` 时会导致错误。您可以在使用 `url_list` 变量之前添加一个条件来检查它是否为 `None`,例如:
```
if url_list:
detail_url = 'https:' + str(url_list)
detail_response = requests.get(url=detail_url, headers=headers).text
detail_tree = etree.HTML(detail_response)
else:
# 处理 url_list 为空的情况
```
此外,还应该确保您已经正确导入了 `requests` 和 `etree` 模块,并且在代码中设置了正确的 `headers`。
response = requests.get(url=url, headers=headers) html_date = response.text
这段代码是使用 Python 的 requests 库发送一个 HTTP GET 请求,并将返回的响应数据存储在 html_date 变量中。其中,url 参数是请求的目标 URL,headers 参数是请求头部信息,可以用来设置一些 HTTP 请求头部的参数,比如 User-Agent 、Referer 等。在这个例子中,我们可以使用该代码来获取某个网页的 HTML 源码。
阅读全文