Многопроцессорная обработка не работает при извлечении данных из списка URL-адресов в Python - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь извлечь данные из списка URL-адресов, хранящихся в локальном текстовом файле.Код работает отлично, но очень медленно, поэтому я применил многопроцессорность, как указано ниже.

import requests
from lxml import html
import pandas as pd
from pandas import ExcelWriter
from multiprocessing import Pool

filepath = open('d:\links.txt', 'r')

allnames = list()
alltitles = list()

def extractm():
    for ii in filepath:
        geturl = requests.get(ii)
        soup = html.fromstring(geturl.content)
        names = soup.xpath("//dt[contains(text(),'Corresponding Author')]//following::dd//text()[1]")
        titles = soup.xpath('//body//title//text()')
        for (name, title) in zip(names, titles):
            allnames.append(name)
            alltitles.append(title)
            fullfile = pd.DataFrame({'Names': allnames, 'Title': alltitles})
            writer = ExcelWriter('D:\\data.xlsx')
            fullfile.to_excel(writer, 'Sheet1', index=False)
            writer.save()

if __name__ == '__main__':
    pp = Pool(10)
    pp.apply_async(extractm())
    pp.close()
    pp.join()

Даже после применения многопроцессорности он работает так же, как и раньше, пожалуйста, помогите мне в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...