V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
bataQi
V2EX  ›  Python

代码报错百度过也 还是解决不了 决定请教大家 谁知道为什么报错啊。。。

  •  
  •   bataQi · 2018-01-23 17:44:06 +08:00 · 5803 次点击
    这是一个创建于 2500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
    第 1 条附言  ·  2018-01-24 09:37:41 +08:00
    # coding:utf-8
    import requests
    from bs4 import BeautifulSoup
    from multiprocessing import Pool
    import re

    url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=全国&kw=python&p=1&kt=3'
    wbdata = requests.get(url).content
    soup = BeautifulSoup(wbdata, 'lxml')

    items = soup.select("div#newlist_list_content_table > table")
    count = len(items) - 1
    # 每页职位信息数量
    print(count)

    job_count = re.findall(r"共<em>(.*?)</em>个职位满足条件", str(soup))[0]
    # 搜索结果页数
    pages = (int(job_count) // count) + 1
    print(pages)

    def get_zhaopin(page):
    url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=全国&kw=python&p={0}&kt=3'.format(page)
    print("第{0}页".format(page))
    wbdata = requests.get(url).content
    soup = BeautifulSoup(wbdata, 'lxml')

    job_name = soup.select("table.newlist > tr > td.zwmc > div > a")
    salarys = soup.select("table.newlist > tr > td.zwyx")
    locations = soup.select("table.newlist > tr > td.gzdd")
    times = soup.select("table.newlist > tr > td.gxsj > span")
    for name, salary, location, time in zip(job_name, salarys, locations, times):
    data = {
    'name': name.get_text(),
    'salary': salary.get_text(),
    'location': location.get_text(),
    'time': time.get_text(),
    }
    print(data)

    if __name__ == '__main__':
    pool = Pool(processes=2)
    pool.map_async(get_zhaopin, range(1, pages + 1))
    pool.close()
    pool.join()

    报错信息如上
    python3.6 版本 pycharm 编辑器
    8 条回复    2018-01-24 12:25:20 +08:00
    siteshen
        1
    siteshen  
       2018-01-23 20:26:25 +08:00
    http://doc.zengrong.net/smart-questions/cn.html

    提问题时,应该尽量方便回答者。比如贴出可运行的 demo 代码,你预期是什么行为,实际是什么行为。
    你这样直接放一个异常,没有上下文,有人想帮助你也无能为力。
    Linxing
        2
    Linxing  
       2018-01-23 21:57:44 +08:00 via iPhone
    实在看不出有什么错
    PureWhite
        3
    PureWhite  
       2018-01-24 00:24:13 +08:00
    光从 exception 来看,可能是被 强 了,你懂的。
    先贴代码,和你的测试用例,再提问。
    bataQi
        4
    bataQi  
    OP
       2018-01-24 09:28:48 +08:00
    @siteshen 很涨知识 膜拜 dalao 哈哈
    bataQi
        5
    bataQi  
    OP
       2018-01-24 09:29:28 +08:00
    @Linxing 光从报错信息看不出来 是我疏忽了 抱歉抱歉
    bataQi
        6
    bataQi  
    OP
       2018-01-24 09:30:12 +08:00
    @PureWhite 还是有点不懂 不过还是很感谢你 哈哈
    lt0136
        7
    lt0136  
       2018-01-24 10:48:20 +08:00
    'Remote end closed connection without response'
    可能是服务器发现了爬虫并且主动把连接关了
    bataQi
        8
    bataQi  
    OP
       2018-01-24 12:25:20 +08:00
    @lt0136 万分感谢 可能是这个原因吧 或许我可以去别的网站拿这段代码试试 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3574 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:53 · PVG 18:53 · LAX 02:53 · JFK 05:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.