Python requests“Max retries exceeded with url” error

error1:

NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000038F2B00>: Failed to establish a new connection:[WinError 10060] 由于連接方在一段時間后沒有正確答復或連接的主機沒有反應狭姨,連接嘗試失敗回季。',))

解決辦法:

session.keep_alive=False

error2:

python hostname doesn't match either of? facebookXXXXX

解決辦法:

importssl

ssl.match_hostname =lambdacert, hostname:True

多方查閱后發(fā)現(xiàn)了解決問題的原因:http連接太多沒有關(guān)閉導致的轧粟。

解決辦法:

1、增加重試連接次數(shù)

? requests.adapters.DEFAULT_RETRIES = 5

2首装、關(guān)閉多余的連接

requests使用了urllib3庫创夜,默認的http connection是keep-alive的,requests設置False關(guān)閉仙逻。

s = requests.session()

s.keep_alive =False

3驰吓、只用session進行操作涧尿。即只創(chuàng)建一個連接,并設置最大連接數(shù)或者重試次數(shù)檬贰。

import requests?

from requests.adapters import HTTPAdapter

from requests.packages.urllib3.util.retry import Retry

session = requests.Session()

retry = Retry(connect=3, backoff_factor=0.5)

adapter = HTTPAdapter(max_retries=retry)

session.mount('http://', adapter)

session.mount('https://', adapter)

session.get(url)

import? requests??

from? requests.adapters? import? HTTPAdapter

from? requests.packages.urllib3.util.retry? import? Retry?

?s = requests.Session()?

?retry = Retry(connect =5, backoff_factor =1)?

?adapter = HTTPAdapter(max_retries = retry)?

?s.mount('http://', adapter)?

?s.keep_alive =False

res = s.post(self.conn.host +'/sign-in', data = json.dumps({'name':"XXX",'pwd':"XXX"}))?

?response = res.json()

但是在starkoverflow上有人給出了這樣的解釋姑廉。

4.安裝 py

pip install -U pyopenssl

5、設定固定的睡眠時間在發(fā)送請求之間

https://github.com/requests/requests/issues/4246#event

https://stackoverflow.com/questions/23013220/max-retries-exceeded-with-url


在爬取boss直聘時出現(xiàn)這種錯誤翁涤,總結(jié)如下:?

1.http連接太多沒有關(guān)閉導致的桥言,解決方法:

import requests

requests.adapters.DEFAULT_RETRIES =5? ? # 增加重連次數(shù)

s = requests.session()

s.keep_alive = False? ?# 關(guān)閉多余連接

s.get(url)# 你需要的網(wǎng)址

2.訪問次數(shù)頻繁,被禁止訪問葵礼,解決方法:使用代理

import requests

s = requests.session()

url ="https://mail.163.com/"

s.proxies= {"https":"47.100.104.247:8080","http":"36.248.10.47:8080", }

s.headers= header

s.get(url)

查找代理的網(wǎng)址:http://ip.zdaye.com/shanghai_ip.html#Free?

使用代理時需注意:1.代理分為http和https兩種号阿,不能用混,如果把http的代理用作https也是會報上面的錯誤;2.上面的代理以字典格式傳入鸳粉,例如上面的例子扔涧,可以是“47.100.104.247:8080”這種格式,也可以是“https://47.100.104.247:8080”這種格式届谈;3.如果代理不可用一樣會報上面的錯誤枯夜。以下方法判斷代理是否可用:

import requests

s = requests.session()

url ="https://mail.163.com/"

s.keep_alive = False

s.proxies= {"https":"47.100.104.247:8080","http":"36.248.10.47:8080", }

s.headers= header

r = s.get(url)

print(r.status_code)? ? # 如果代理可用則正常訪問,不可用報以上錯誤


升級

pip install? --upgrade? requests


如果同一ip訪問次數(shù)過多也會封ip艰山,這里就要用代理了proxies湖雹,python很簡單,直接在請求中帶上proxies參數(shù)就行程剥,

r = requests.get(url, headers=headers, cookies=cookies,proxies = proxies)

代理ip的話劝枣,給大家推薦個網(wǎng)站

http://www.data5u.com/

最下方會有20個免費的汤踏,一般小爬蟲夠用了织鲸,使用代理就會出現(xiàn)代理連接是否通之類的問題,需要在程序中添加下面的代碼溪胶,設置連接時間

requests.adapters.DEFAULT_RETRIES =5

s = requests.session()

s.keep_alive = False

from bs4 import BeautifulSoup

import json,requests,sys

reload(sys)

sys.setdefaultencoding('utf-8')

list =[22711693,24759450,69761921,69761921,22743334,66125712,22743270,57496584,75153221,57641884,66061653,70669333,57279088,24740739,66126129,75100027,92667587,92452007,72345827,90004047,90485109,90546031,83527455,91070982,83527745,94273474,80246564,83497073,69027373,96191554,96683472,90500524,92454863,92272204,70443082,96076068,91656438,75633029,96571687,97659144,69253863,98279207,90435377,70669359,96403354,83618952,81265224,77365611,74592526,90479676,56540304,37924067,27496773,56540319,32571869,43611843,58612870,22743340,67293664,67292945, 57641749,75157068,58934198,75156610,59081304,75156647,75156702,67293838,]

returnList = []

proxies = {

? ? # "https": "http://14.215.177.73:80",? ? "http": "http://202.108.2.42:80",

}

headers = {

? ? 'Host': 'www.dianping.com',

? ? 'Referer': 'http://www.dianping.com/shop/22711693',

? ? '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/535.19',

? ? 'Accept-Encoding': 'gzip'}

cookies = {

? ? '_lxsdk_cuid': '16146a366a7c8-08cd0a57dad51b-32637402-fa000-16146a366a7c8',

? ? 'lxsdk': '16146a366a7c8-08cd0a57dad51b-32637402-fa000-16146a366a7c8',

? ? '_hc.v': 'ec20d90c-0104-0677-bf24-391bdf00e2d4.1517308569',

? ? 's_ViewType': '10',

? ? 'cy': '16',

? ? 'cye': 'wuhan',

? ? '_lx_utm': 'utm_source%3DBaidu%26utm_medium%3Dorganic',

? ? '_lxsdk_s': '1614abc132e-f84-b9c-2bc%7C%7C34'}

requests.adapters.DEFAULT_RETRIES = 5

s = requests.session()

s.keep_alive = False

for i in list:

? ? url = "https://www.dianping.com/shop/%s/review_all" % i

? ? r = requests.get(url, headers=headers, cookies=cookies,proxies = proxies)

? ? # print r.text? ? soup = BeautifulSoup(r.text, 'lxml')

? ? lenth = soup.find_all(class_='PageLink').__len__() + 1? ??

????#print lenth? ? for j in xrange(lenth):

? ? ? ? urlIn = "http://www.dianping.com/shop/%s/review_all/p%s" % (i, j)

? ? ? ? re = requests.get(urlIn, headers=headers, cookies=cookies,proxies =proxies)

? ? ? ? soupIn = BeautifulSoup(re.text, 'lxml')

? ? ? ? title = soupIn.title.string[0:15]

? ? ? ? #print title? ? ? ? coment = []

? ? ? ? coment = soupIn.select('.reviews-items li')

? ? ? ? for one in coment:

? ? ? ? ? ? try:

? ? ? ? ? ? ? ? if one['class'][0]=='item':

? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? except(KeyError),e:

? ? ? ? ? ? ? ? pass

? ? ? ? ? ? name = one.select_one('.main-review .dper-info .name')

? ? ? ? ? ? #print name.get_text().strip()? ? ? ? ? ? name = name.get_text().strip()

? ? ? ? ? ? star = one.select_one('.main-review .review-rank span')

? ? ? ? ? ? #print star['class'][1][7:8]? ? ? ? ? ? star = star['class'][1][7:8]

? ? ? ? ? ? pl = one.select_one('.main-review .review-words')

? ? ? ? ? ? pl['class'] = {'review-words'}

? ? ? ? ? ? words = pl.get_text().strip()

? ? ? ? ? ? returnList.append([title,name,star,words])file = open("/Users/huojian/Desktop/store_shop.sql","w")for one in returnList:

? ? file.write("\n")

? ? file.write(unicode(one[0]))

? ? file.write("\n")

? ? file.write(unicode(one[1]))

? ? file.write("\n")

? ? file.write(unicode(one[2]))

? ? file.write("\n")

? ? file.write(unicode(one[3]))

? ? file.write("\n")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搂擦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哗脖,更是在濱河造成了極大的恐慌瀑踢,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件才避,死亡現(xiàn)場離奇詭異橱夭,居然都是意外死亡,警方通過查閱死者的電腦和手機桑逝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門棘劣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人楞遏,你說我怎么就攤上這事茬暇∈孜簦” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵糙俗,是天一觀的道長勒奇。 經(jīng)常有香客問我,道長巧骚,這世上最難降的妖魔是什么赊颠? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮网缝,結(jié)果婚禮上巨税,老公的妹妹穿的比我還像新娘。我一直安慰自己粉臊,他們只是感情好草添,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扼仲,像睡著了一般远寸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屠凶,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天驰后,我揣著相機與錄音,去河邊找鬼矗愧。 笑死灶芝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的唉韭。 我是一名探鬼主播夜涕,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼属愤!你這毒婦竟也來了女器?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤住诸,失蹤者是張志新(化名)和其女友劉穎驾胆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贱呐,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡丧诺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奄薇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驳阎。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搞隐,到底是詐尸還是另有隱情驹愚,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布劣纲,位于F島的核電站逢捺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏癞季。R本人自食惡果不足惜劫瞳,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绷柒。 院中可真熱鬧志于,春花似錦、人聲如沸废睦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗜湃。三九已至奈应,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間购披,已是汗流浹背杖挣。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刚陡,地道東北人惩妇。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像筐乳,于是被迫代替她去往敵國和親歌殃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容