Pythonでwebのスクレイピングをしていたのですが、遅すぎて、どこのコードが遅くしている原因であるのかわかる方がいましたらご教授いただきたいですm()m
私のコードの順序として
page移動をfor loopで回す
ページごとにsoupを作り、for loopで回して
項目一回ごとにpandasに追加する形をとっています。
from bs4 import BeautifulSoup import pandas as pd import datetime import urllib.request, urllib.error
Python
1basic_url = "-----" 2url = "---" 3count = 0#page1 4follower = 100000 5df = pd.DataFrame(columns=[、、、、、、、]) 6 7while follower>10000: 8 if count > 0: 9 new_url = basic_url + url + "/" + str(count) 10 else: 11 new_url = basic_url + url 12 13 html = urllib.request.urlopen(url=new_url) 14 soup = BeautifulSoup(html, 'lxml') 15 for i in range(50): 16 try: 17 profile = soup('div', id="sideBreak4")[i].get_text().replace('\r','').replace('\n','').replace('\t','') 18 ranking =int(soup('td',class_="col1")[i].get_text()) 19 name = soup('td',class_="col3")[i].select('a')[0].get_text()#name 20 idd = soup('td',class_="col3")[i].select('a')[1].get_text() 21 follower = int(soup('span',class_="red")[i].get_text().replace(',','')) 22 follow = int(soup('td',class_="col4")[i].get_text()) 23 post_count = int(soup('td',class_="col7")[i].get_text()) 24 count += 50 25 one_article = pd.Series([ranking, name, idd, profile, follow, follower, post_count], 26 [、、、、、、]) 27 df = df.append(one_article, ignore_index=True) 28 except: 29 break 30df.to_csv(url + '.csv')
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。