爬虫目的:
随着近年互联网的发展,网络上的信息飞速数量增长。在庞大的数据面前想要获得 期望的信息往往如同大海捞针。通过合理的筛选,在百万甚至数亿计的数据中找到所需
信息,无疑有着非常大的意义。
在豆瓣网下,有很多与日常生活相关的模块网站
内置的评分评价功能可以为用户提供很大选择空间,以豆瓣读书为例:
其中包含六个大型模块(文学,流行,文化,生活,经管,科技),内部细分了145个小型模块。
在以数十万计的图书信息中,找到各模块中热门好评图书,对于读者或是书商都是很重要的。
爬虫代码概述
一.数据存储
csv文件存储,为方便后继使用pandas进行分析,对于爬取的html文件使用BeautifulSoup进行解析
字段选择为 : 书名(titles) 作者/出版社(authors) 评分(nums) 评论数(peoples)
1 csvinfo = open(name + '.csv', 'ab')
2 begcsv = csv.writer(csvinfo)
3 begcsv.writerow(['titles', 'authors', 'nums', 'peoples'])
4 csvinfo.close()
二.网页解析
html中书名(titles) 作者/出版社(authors) 评分(nums) 评论数(peoples)等字段对应selector分别为:
#subject_list > ul > li > div.info > h2 > a
#subject_list > ul > li > div.info > div.pub
#subject_list > ul > li > div.info > div.star.clearfix > span.rating_nums
#subject_list > ul > li > div.info > div.star.clearfix > span.pl
在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
1 # 爬取指定name模块的url,并存储至name.csv文件
2 def web(url, name):
3 db_data = requests.get(url, headers=header)
4 soup = BeautifulSoup(db_data.text, 'lxml')
5 titles = soup.select('#subject_list > ul > li > div.info > h2 > a')
6 authors = soup.select('#subject_list > ul > li > div.info > div.pub')
7 nums = soup.select('#subject_list > ul > li > div.info > div.star.clearfix > span.rating_nums')
8 peoples = soup.select('#subject_list > ul > li > div.info > div.star.clearfix > span.pl')
9
10 for title, author, num, people in zip(titles, authors, nums, peoples):
11 data = [
12