用Python实现网页数据抓取
需求: 获取某网站近10万条数据记录的相关详细信息。
分析:数据的基本信息存放于近1万个页面上,每个页面上10条记录。如果想获取特定数据记录的详细信息,需在基本信息页面上点击相应记录条目,跳转到详细信息页面。详细信息页面的地址可从基本信息页面里的href属性获取。
方法:开始时使用beautiful soup进行爬网,因速度较慢,换用lxml,速度改善不明显。
beautiful soup
import bs4
import re
import requests
import lxml.html
f=open('testpython2.txt','w',encoding='utf-8')
j=30
while(j<41):
beautiful = requests.get(webaddress).content
soup=bs4.BeautifulSoup(beautiful,"lxml")
m=5
while m <85:
daf1=soup.find_all('a')[m].get_text()
if daf1!='哈哈':
daf=soup.find_all('a')[m-1].get('href')
c='webaddress1'+ str(daf)
if requests.get(c).status_code==500:
f.write('Cannot found!')
f.write('\n')
else:
beautiful1=requests.get(c).content
soup1=bs4.BeautifulSoup(beautiful1,"lxml")
daf2=soup1.find(id="project_div2")
p=2
while (p<20):
mm=daf2.find_all('td')[p].get_text()