我创建了一个Python3脚本,它允许我在搜索引擎(DuckDuckGo)上进行搜索,获得HTML源代码并将其写入文本文件。
import pycurl
from io import BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'https://duckduckgo.com/?q=test')
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.FOLLOWLOCATION, True)
c.perform()
c.close()
body = buffer.getvalue()
with open("output.htm", "w") as text_file:
text_file.write(str(body))
print(body.decode('iso-8859-1'))这部分代码工作正常。但是,当我试图打开包含搜索引擎的HTML源代码的output.htm文件时,我什么也得不到(我得到一个内部写有我的搜索主题的input )。我希望有相同的超文本标记语言源代码,我将通过在我的终端上运行curl https://duckduckgo.com/?q=test获得。
发布于 2018-09-28 17:06:28
Duckduckgo的html页面使用javascript将搜索结果加载到html标记中,因此curl或PyCurl将无法获得你在浏览器中看到的相同html内容,因为curl/pycurl仅获取互联网资源,而不提供任何javascript处理。
使用https://duckduckgo.com/api而不是抓取在他们的服务器/数据库中查找搜索结果。
https://stackoverflow.com/questions/52550953
复制相似问题