用python并行web抓取

2024-09-29 02:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经写了一个python脚本来从一个特定的网站抓取数据。。问题是这个应用程序花了很长时间,因为我有多年的数据要处理。 我目前使用的解决方法是在日期范围内多次执行脚本,但我需要多次登录该站点,这不是我所知道的最佳方式。你知道吗

代码如下

import requests
import datetime
username = 'xxxxx'
passwrod = 'yyyyy'
startday = datetime(1950,1,1)
endday = datetime.(2018,1,1)
processday = startday
session1 = logintospartan(username,password)

while(processday<endday):
    responcecode = scrapedatafordate(session1,processday)
    processday = processday +datetime.timedelta(days=1)

每天需要一个小时来处理,因为这是50年的数据,至少是18000多个小时的时间,这是很神奇的,有没有一种方法,我可以运行'虽然'片段并行多次

下面是代码的一个工作示例

import requests
try:
    from BeautifulSoup import BeautifulSoup
except ImportError:
    from bs4 import BeautifulSoup

queryk = ['a', 'b', 'c', 'd', 'e','a', 'b', 'c', 'd', 'e','a', 'b', 'c', 'd', 'e','a', 'b', 'c', 'd', 'e']
i = len(queryk)
s = requests.session()
query_url = 'https://www.google.co.in/search?q='
while(i>0):
    r = s.get(query_url+queryk[-i])
    soup = BeautifulSoup(r.text)
    h3 = soup.find_all('h3')
    for q in h3:
        links = q.find_all('a')
        for a in links:
            print(a['href'])
    i = i-1

a能并行化循环吗?你知道吗


Tags: 数据方法代码inimport脚本datetimeusername