您的代码中存在以下问题:

  1. 缺少导入requests模块的语句。请在代码开头添加import requests

  2. r=requests.get(url=url,headers=headers)这行代码应该放在导入requests模块后。

  3. r.encoding = r.apparent_encoding这行代码没有意义,因为您在之前已经将编码设置为utf-8,所以可以删除这行代码。

  4. r=r.encoding这行代码将r的值设置为编码类型,而不是请求的响应内容。应该将其改为r=r.text,以获取响应内容。

  5. 在最后一行代码中,XPath的路径字符串应该在两个引号之间,即'//div[@data-testid="cellInnerDiv"]'

请将以上修改应用到您的代码中,如下所示:

import requests
from lxml import etree

url = "https://twitter.com/search?q=(%E5%A4%A7%E8%BF%90%E4%BC%9A%20OR%20FISU)%20until%3A2023-07-22%20since%3A2023-07-01&src=typed_query&f=live"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0"}
r = requests.get(url=url, headers=headers)
r.encoding = "utf-8"
# r.encoding="utf-8"
r = r.text

# if not os.path.exists("./4kpiclibs"):
#     os.mkdir("./4kpiclibs")
    
#解析源码数据
tree = etree.HTML(r)
div_list = tree.xpath('//div[@data-testid="cellInnerDiv"]')

这样修改后,您应该能够成功获取推特上的内容

url=httpstwittercomsearchq=E5A4A7E8BF90E4BC9A20OR20FISU20until3A2023-07-2220since3A2023-07-01&src=typed_query&f=liveheaders=User-AgentMozilla50 Windows NT 100; Win64; x64; rv1090 Gecko20100101 Firefox

原文地址: https://www.cveoy.top/t/topic/igzG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录