爬取当当网图书信息
发布时间
阅读量:
阅读量
大体思路:
在列表页上获取的数据条数已经完整;尽管如此,在每一条单独的数据记录中仍缺少关键信息;因此,在获取每个列表页的数据时都需要先提取其对应的url;接着,在获取每个url后进行进一步的数据解析。
import requests
import re
from bs4 import BeautifulSoup
import pandas as pd
n=0
name_list=[]
price_list=[]
r = requests.get("http://search.dangdang.com/?key=python&act=input")
html = r.text
book_url = re.findall('href="(.*?/\d{8}.html)"',html)
#在列表页爬取单条数据的url链接
for book in book_url: #遍历爬过来的url
n=n+1
if n%2 ==0: #因为自取url会重复一次,故跳过一次重复的url
R = requests.get(book)
htm = R.text
soup = BeautifulSoup(htm,'html.parser')
h1 = soup.find('h1') #查找出书名
name_list.append(soup.h1['title'])
p = soup.find_all(id=re.compile('dd-price')) #返回含id='dd-price'的标签
price_list.append(p[1].contents[2].strip())
else:
continue
df = pd.DataFrame([name_list,price_list]).T #转化为DataFrame对象数据
df = df.rename(columns={0:'book',1:'price'}) #加表头
df.to_csv('pythonbook.csv',index=False) #数据存储
最终结果如下:

全部评论 (0)
还没有任何评论哟~
