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
happykjoy
V2EX  ›  Python

新手求助

  •  
  •   happykjoy · 2018-09-10 09:05:36 +08:00 · 1652 次点击
    这是一个创建于 2257 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一段代码,先获取一个网址的代码,再进行打印格式化,然后想通过进程池提高速度。用 pool=Pool(10),pool.map()这个代码实现,怎么实现啦。请大神帮帮忙。代码如下:
    #!/usr/bin/python
    #_*_ coding:utf8 _*_

    import requests
    from requests.excepti** import RequestException
    import re

    def get_one_page(url):
    try:
    resp**e = requests.get(url)
    if resp**e.status_code == 200:
    #print(resp**e.text)
    #print(resp**e.encoding)
    #print(resp**e.apparent_encoding)
    #r = resp**e.text
    #print(requests.utils.get_encodings_from_content(r)[0])
    #a = r.encode('utf-8').decode(requests.utils.get_encodings_from_content(r)[0])
    #print(a)
    #print('------------------------------------')
    #b = r.encode('utf-8').decode(resp**e.apparent_encoding)
    #print(b)
    return resp**e.text
    return None
    except RequestException:
    return None

    def parse_one_page(html):
    pattern = re.compile('<li.*?cover.*?href="(.*?)".*?</li>',re.S)
    result = re.findall(pattern,html)
    print(result)

    def main():
    url = 'https://book.douban.com/'
    html=get_one_page(url)
    parse_one_page(html)

    if __name__ == '__main__':
    main()

    这个后面的多进程怎么写,大神们帮帮忙。
    happykjoy
        1
    happykjoy  
    OP
       2018-09-10 09:22:20 +08:00
    各位帮帮忙,我是小白
    sunnyadamm
        2
    sunnyadamm  
       2018-09-10 10:35:22 +08:00
    。。。你这代码贴的,估计大家连读都不想读。。。
    happykjoy
        3
    happykjoy  
    OP
       2018-09-10 11:10:24 +08:00
    #!/usr/bin/python
    #_*_ coding:utf8 _*_

    import requests
    from requests.exceptions import RequestException
    import re
    from multiprocessing import Pool

    def get_one_page(url):
    try:
    response = requests.get(url)
    if response.status_code == 200:
    #print(response.text)
    #print(response.encoding)
    #print(response.apparent_encoding)
    #r = response.text
    #print(requests.utils.get_encodings_from_content(r)[0])
    #a = r.encode('utf-8').decode(requests.utils.get_encodings_from_content(r)[0])
    #print(a)
    #print('------------------------------------')
    #b = r.encode('utf-8').decode(response.apparent_encoding)
    #print(b)
    return response.text
    return None
    except RequestException:
    return None

    def parse_one_page(html):
    pattern = re.compile('<li.*?cover.*?href="(.*?)" title="(.*?)">.*?img src="(.*?)"'
    '.*?author">(.*?)</div>.*?year">(.*?)</span>.*?publisher">(.*?)'
    '</span>.*?abstract">(.*?)</p>.*?</li>',re.S)
    result = re.findall(pattern,html)
    for item in result:
    yield {
    '地址': item[0],
    '书名': item[1],
    '封面': item[2],
    '作者': item[3].strip()[0:],
    '出版时间': item[4].strip()[0:],
    '出版社': item[5].strip()[0:],
    '详细': item[6].strip()[0:]
    }

    def main():
    url = 'https://book.douban.com/'
    html=get_one_page(url)
    for item in parse_one_page(html):
    print(item)


    if __name__=='__main__':
    pool = Pool()
    pool.map(main, [i * 10 for i in range(10)])
    pool.close()
    pool.join()
    happykjoy
        4
    happykjoy  
    OP
       2018-09-10 11:11:56 +08:00
    @sunnyadamm 抱歉,新手刚来,第一次贴代码,贴成纯文本格式了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1136 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:50 · PVG 06:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.