pycharm使用multiprocessing多线程时无反应。

1.看视频学习爬虫时用到了多线程,然后自己敲代码运行无反应。复制视频源代码运行也无反应
附上源代码

from fake_useragent import UserAgent
import  requests
import re
from multiprocessing import Pool

ua = UserAgent()
headers = {
    'user-agent':ua.random
}

def get_proxy():
    return requests.get("http://127.0.0.1:5010/get/").content

def delete_proxy(proxy):
    requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))

def getHtml(url):
        # ....
        retry_count = 5
        proxy = get_proxy()
        while retry_count > 0:
            try:
                html = requests.get(url,headers=headers,proxies={"http": "http://{}".format(proxy)})
                # 使用代理访问
                html.raise_for_status()
                html.encoding = 'utf-8'
                return html.text
            except :
                retry_count -= 1
        # 出错5次, 删除代理池中代理
        delete_proxy(proxy)
        return None

def parse_html(html):
    pattern = re.compile('<dd>.*?board-index.*?>(.*?)</i>.*?<img.*?data-src="(.*?)".*?<p.*?"name"><a.*?href="(.*?)">(.*?)</a>'
                        +'.*?.*?<p class="star">(.*?)</p>.*?"releasetime">'
                         +'(.*?)</p>.*?"integer">(.*?)</i>.*?"fraction">(\d)</i>.*?</dd>',re.S)
    items = re.findall(pattern,html)

    for item in items:
            yield {
                '排名'    :item[0],
                '图片链接':"https://maoyan.com"+item[1],
                "电影链接":'https://maoyan.com'+item[2],
                "电影名称":item[3],
                "演员":item[4].strip()[3:],
                "上映时间":item[5],
                "评分":   item[6]+item[6]
            }
def  main(offset):

    url = "https://maoyan.com/board/4?offset="+str(offset)
    html = getHtml(url)
    for item in parse_html(html):
       print(item)

if __name__ == '__main__':

    pool = Pool()
    print(pool.map(main,[i*10 for i in range(10)]))

使用的是multiprocessing 中的Pool模块
程序运行后,一直卡在这个界面。图片说明
程序不报错不退出。使用其他方法的多线程例如 apply_async之类的也没有反应。
在任务管理器中能查看到创建的进程
图片说明
求大佬解答!
已经困惑很久了。

2个回答

我也是新手,建议你在每个函数的开始和结束位置上,加一个print"**开始"“**结束”,这样你就知道停在什么地方了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐