Python2.7. 访问一个HTTPS网站并获取内容
Python2.7. 访问一个HTTPS网站并获取内容
大家早上好,
我一直在尝试通过Python 2.7访问一个HTTPS网站,但无法访问到内容,而且多天的研究也没有帮到我。
这个网站是:https://www.cioh.org.co/。在Python中,我希望能够访问该页面并获取所有的HTML内容。以前,我会使用ssl模块,并在顶部添加以下代码:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
这次,这个方法不起作用,我得到了错误:SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)
当使用requests模块和requests.get('https://www.cioh.org.co/')的时候。
从某些网站上,有人指出可以使用以下方法:
import requests
r = requests.get(URL, verify=False)
print r.text
我也尝试了这个方法,但实际上它并没有抓取到内容。它只是从网站获取了内部的头部信息,如下所示:
打印出来的响应与网站完全不同。通过无数次的研究,我尝试了使用certifi模块。我还安装了OpenSSL并提取了.crt、.key和.pem文件(并尝试使用它们),但仍然没有运气。如果需要,我可以进一步展开我所做的研究。如果我在任何方面没有表达清楚,请告诉我。提前感谢你们的帮助。
副记:这是我第一次创建账号并提问。如果我表达的不清楚,请告诉我。谢谢。
Python2.7访问HTTPS网站并检索内容的问题是由于无法直接访问HTTPS网站而引起的。为了解决这个问题,可以使用selenium库来模拟浏览器的行为。
首先,需要安装geckodriver来支持使用Firefox浏览器。具体的安装教程可以参考这个链接:instructions。然后,使用pip3命令安装selenium库:pip3 install selenium
。
接下来,可以使用以下代码来实现访问并抓取HTTPS网页的内容:
from selenium import webdriver def scrape_page(url): browser = webdriver.Firefox() browser.get(url) content = browser.page_source browser.close() return content if __name__ == "__main__": print(scrape_page('https://www.cioh.org.co/'))
这段代码通过创建一个Firefox浏览器对象,然后打开指定的URL,并获取网页的源代码。最后关闭浏览器并返回网页内容。
需要注意的是,这种实现方式可能比较笨拙,但是它是有效的。希望这个方法对您有所帮助。
Python2.7版本中访问HTTPS网站并检索内容时出现了问题。根据响应中的Incapsula_Resource
,您的请求被WAF(网络应用防火墙)阻止了。您可以尝试在requests.get
调用中更改用户代理字符串,使其看起来更像常规浏览器,但该网站的所有者显然不希望自动化脚本爬取其页面。您可以参考quora.com/…中的解决方法。