multiprocessing 模块问题


在windows系统下,运行以下代码:(这是网上教程,抓去猫眼top100的电影)

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

def get_one_page(url): try: response = requests.get(url) if response.status_code == 200: return response.text return None except RequestException: return None

def parse_one_page(html): pattern = re.compile(r'

.?board-index.?>(\d+)</i>.?data-src="(.?)".?name"><a.*?' +r'="">(.?).?star">(.?)

.?releasetime">(.?)

.?integer">' +r'(.?)</i>.?fraction">(\d+)</i>.?
', re.S) items = re.findall(pattern, html) for item in items: yield { 'index': item[0], 'image': item[1], 'title': item[2], 'actor': item[3].strip()[3:], 'time': item[4][5:], 'score': item[5]+item[6] }

def write_to_file(content): with open('result.txt', 'a', encoding='utf-8') as f: f.write(json.dumps(content, ensure_ascii=False) + '\n')

def main(offset): url = 'http://maoyan.com/board/4?offset=' + str(offset) html = get_one_page(url) for item in parse_one_page(html): print(item) write_to_file(item)

if name == 'main': pool = Pool() pool.map(main, [i*10 for i in range(10)])

print(item)这个打印没有执行,无法打印item。但是程序能正常运行 也能写进文件。

教程是在苹果系统上运行,是可以输出的。 哪位大神能解答下问题么?

  • 4 条回复 | 2 人参与
  • xushubo # 1

    下午用linux系统运行了下也是可以输出的,唯独windows就是不能输出。

  • 排版太乱了,请使用 markdown 优化排版。

  • xushubo # 3

    import requests

    from multiprocessing import Pool

    from requests.exceptions import RequestException

    import re

    import json

    def get_one_page(url):

    try: response = requests.get(url) if response.status_code == 200: return response.text return None except RequestException: return None def parse_one_page(html):

    pattern = re.compile(r'

    .?board-index.?>(\d+)</i>.?data-src="(.?)".?name"><a.*?' +r'="">(.?).?star">(.?)

    .?releasetime">(.?)

    .?integer">' +r'(.?)</i>.?fraction">(\d+)</i>.?
    ', re.S) items = re.findall(pattern, html) for item in items: yield { 'index': item[0], 'image': item[1], 'title': item[2], 'actor': item[3].strip()[3:], 'time': item[4][5:], 'score': item[5]+item[6] } def write_to_file(content):

    with open('result.txt', 'a', encoding='utf-8') as f: f.write(json.dumps(content, ensure_ascii=False) + '\n') def main(offset):

    url = 'http://maoyan.com/board/4?offset=' + str(offset) html = get_one_page(url) for item in parse_one_page(html): print(item) write_to_file(item) if name == 'main':

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

  • xushubo # 4

    好吧,没用过markdown。。研究研究先

添加一条新回复
登录 或者 注册 后发表回复