鱼C论坛

 找回密码
 立即注册
查看: 5312|回复: 2

[已解决]爬取今日头条出现ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个...

[复制链接]
发表于 2018-4-22 19:10:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 DAGECHUIZI 于 2018-4-22 19:14 编辑
  1. import requests
  2. from selenium import webdriver
  3. from urllib.parse import urlencode
  4. import re
  5. import json
  6. import time

  7. def get_page_index():
  8.     head = {
  9.         'accept-encoding': 'gzip, deflate, br',
  10.         'accept-language': 'zh-CN,zh;q=0.9',
  11.         'cookie': 'tt_webid=6547097210365822477; WEATHER_CITY=%E5%8C%97%E4%BA%AC; UM_distinctid=162eb39d2231ec-08bbf0a2603116-3a614f0b-1fa400-162eb39d22422e; tt_webid=6547097210365822477; uuid="w:d625a48f91744a87887eb7c10eb5c875"; __tasessionId=ro1q9k23r1524377491314; CNZZDATA1259612802=696710449-1524360766-https%253A%252F%252Fwww.baidu.com%252F%7C1524376648',
  12.         'user - agent': 'Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 65.0.3325.181Safari / 537.36',
  13.     }
  14.     data = {
  15.         'offset': 0,
  16.         'format': 'json',
  17.         'keyword': '街拍',
  18.         'autoload': 'true',
  19.         'count': 20,
  20.         'cur_tab': 3,
  21.         'from': 'gallery'
  22.     }
  23.     url = 'https://www.toutiao.com/search_content/?' + urlencode(data)
  24.     response = requests.get(url,headers=head)
  25.     return response.text

  26. def parse_page_index(html):
  27.     data = json.loads(html)
  28.     if data and 'data' in data.keys():
  29.         for item in data.get('data'):
  30.             yield item.get('article_url')

  31. def get_page_detail(url):
  32.     browser = webdriver.Chrome()
  33.     browser.get(url)
  34.     print(browser.page_source)
  35.     browser.close()

  36. def main():
  37.     html = get_page_index()
  38.     for url in parse_page_index(html):
  39.         print(url)
  40.         html = get_page_detail(url)
  41.         print(html)
  42.         time.sleep(10)
  43. if __name__ == '__main__':
  44.     main()
复制代码






代码是不完整的,写到这里就出现问题了,因为正常方法不能返回html代码,就加入了selenium和chromdriver,结果就出了这个问题
http://toutiao.com/group/6546175194942145037/
Traceback (most recent call last):
  File "C:/Users/17222/PycharmProjects/spyder/toutiao_jiepai.py", line 48, in <module>
    main()
  File "C:/Users/17222/PycharmProjects/spyder/toutiao_jiepai.py", line 44, in main
    html = get_page_detail(url)
  File "C:/Users/17222/PycharmProjects/spyder/toutiao_jiepai.py", line 36, in get_page_detail
    browser.get(url)
  File "C:\Users\17222\PycharmProjects\spyder\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 324, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Users\17222\PycharmProjects\spyder\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 310, in execute
    response = self.command_executor.execute(driver_command, params)
  File "C:\Users\17222\PycharmProjects\spyder\venv\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 466, in execute
    return self._request(command_info[0], url, body=data)
  File "C:\Users\17222\PycharmProjects\spyder\venv\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 490, in _request
    resp = self._conn.getresponse()
  File "C:\Users\17222\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1331, in getresponse
    response.begin()
  File "C:\Users\17222\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 297, in begin
    version, status, reason = self._read_status()
  File "C:\Users\17222\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\17222\AppData\Local\Programs\Python\Python36-32\lib\socket.py", line 586, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
爬了一天卡在着真的是沮丧,,,,求大佬指点
最佳答案
2018-4-22 19:18:42
我给的建议就是 既然 from selenium import webdriver 都用上这个了。统一用 selenium 模拟浏览器就好了。


这类大型网站反爬很正常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-22 19:18:42 | 显示全部楼层    本楼为最佳答案   
我给的建议就是 既然 from selenium import webdriver 都用上这个了。统一用 selenium 模拟浏览器就好了。


这类大型网站反爬很正常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-23 08:54:26 | 显示全部楼层
不是一个随便的网站就让你爬的。。。很可能是有反扒机制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-3 12:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表