url=httpstwittercomsearchq=E5A4A7E8BF90E4BC9A20OR20FISU20until3A2023-07-2220since3A2023-07-01&src=typed_query&f=liveheaders=User-AgentMozilla50 Windows NT 100; Win64; x64; rv1090 Gecko20100101 Firefox
您的代码中存在以下问题:
-
缺少导入requests模块的语句。请在代码开头添加
import requests。 -
r=requests.get(url=url,headers=headers)这行代码应该放在导入requests模块后。 -
r.encoding = r.apparent_encoding这行代码没有意义,因为您在之前已经将编码设置为utf-8,所以可以删除这行代码。 -
r=r.encoding这行代码将r的值设置为编码类型,而不是请求的响应内容。应该将其改为r=r.text,以获取响应内容。 -
在最后一行代码中,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"]')
这样修改后,您应该能够成功获取推特上的内容
原文地址: https://www.cveoy.top/t/topic/igzG 著作权归作者所有。请勿转载和采集!