当我使用python时urllib.请求要解析一个url,我得到了一个403禁止。这里代码是:
import urllib.request
url='https://www.genecards.org/cgi-bin/carddisp.pl?gene=ERBB2'
headers=('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36')
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)
data=urllib.request.urlopen(url).read().decode('utf-8')
print(data)
然后我得到一个错误:
^{pr2}$当我尝试来自python的请求时,代码是:
import requests
import re
from requests.exceptions import RequestException
def get_page(url):
headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
try:
res=requests.get(url,headers=headers)
if res.status_code==200:
return res.text
except RequestException:
return None
html=get_page('https://www.genecards.org/cgi-bin/carddisp.pl?gene=ERBB2')
print(html)
我有一个这样的html:
请求失败。Incapsula事件ID:461001240193404751-556133389381208009
它不是网页的真实源代码。那么我应该做些什么来改进代码呢?在
这个网页使用的是Incapsula,Incapsula发现你使用的是一个机器人。请参阅this question以获取一些可能的解决方法,或者尝试查找基因卡的公共API。在
相关问题 更多 >
编程相关推荐