Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用用户代理标头时拒绝Webscraping CrunchBase访问_Python_Web Scraping_Beautifulsoup_Python Requests_Wget - Fatal编程技术网

Python 使用用户代理标头时拒绝Webscraping CrunchBase访问

Python 使用用户代理标头时拒绝Webscraping CrunchBase访问,python,web-scraping,beautifulsoup,python-requests,wget,Python,Web Scraping,Beautifulsoup,Python Requests,Wget,我试图通过webscrape Crunch Base找到某些公司的总融资额。举个例子 一开始,我试着只喝漂亮的汤,但我不断得到一个错误,说: 已拒绝访问此网页,因为我们认为您正在使用自动化工具浏览网站 于是,我查了一下如何伪造浏览器访问,并修改了代码,但仍然出现同样的错误。我做错了什么 import requests from bs4 import BeautifulSoup as BS url = 'https://www.crunchbase.com/organization/incub

我试图通过webscrape Crunch Base找到某些公司的总融资额。举个例子

一开始,我试着只喝漂亮的汤,但我不断得到一个错误,说:

已拒绝访问此网页,因为我们认为您正在使用自动化工具浏览网站

于是,我查了一下如何伪造浏览器访问,并修改了代码,但仍然出现同样的错误。我做错了什么

import requests
from bs4 import BeautifulSoup as BS


url = 'https://www.crunchbase.com/organization/incube-labs'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}

response = requests.get(url, headers=headers)
print(response.content)

总之,你的代码看起来很棒!看起来,您试图废弃的网站需要比您现有的更复杂的标题。以下代码应该可以解决您的问题:

import requests
from bs4 import BeautifulSoup as BS


url = 'https://www.crunchbase.com/organization/incube-labs'
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Accept-Encoding": "gzip, deflate", "DNT": "1", "Connection": "close", "Upgrade-Insecure-Requests": "1"}

response = requests.get(url, headers=headers)
print(response.content)

希望这有帮助

网站有几个选项可供选择,以确定您是实际浏览网站还是使用刮板,并且您遇到了其中一个选项。您可以尝试模拟一个实际的浏览器会话,让它看起来更像一个真正的用户(想想selenium之类的模块),或者进一步调查在浏览器中执行请求时随附的HTTP头(就像您使用用户代理所做的一样,只是扩展了这个想法),并继续包含它们,直到您不再收到投诉为止。