python3 [入门基础实战] 爬虫入门之爬取豆瓣读书随笔页面
2017-06-24 00:21
1281 查看
话不多说,先上今晚的代码
不错,今晚爬的就是豆瓣的读书随笔页面
说下思路吧:
一开始先把url考过来,然后进行对比,发现
https://book.douban.com/tag/%E9%9A%8F%E7%AC%94?start=20&type=T
每次变化都是start= 后的数字变化的, 现在我们就暂且爬取一页的数据,
用的还是上一次用的requests和bs4 下的 beautifulsoup
困扰很久的是title标签的获取,暂时上传不了图片,就先这样解释一下:
因为title是一个attr,不是一个tag,这个我也是不是大懂,边百度边进行调试的,
这里说的是如果不知道title是什么value 就直接设置为true,这样爬取的就是title下的内容了
还有一个就是 爬完后,得到的并不是标题,而是标题连接一些其他的标签一块给爬出来了。此时我们就用title.string方法得到它的字符串内容,这样就可爬出来
注意一点的是:
每次其他类型转string类型都转不了,我们可以用str(xxx) 或者”“.join(xxx)方法转为string,这种视情况而定。
可能主要还是beautifulsoup 这个库用不熟,本来也不是很熟,这是我第二次爬出来比较简陋的一些数据, 不过比第一次的多了一些
整体思路:
先把整个网页爬取下来,再进行某个字段的爬取,然后进行其他字段的爬取,最后多页进行爬取,这里借鉴了下大才哥的beautifulsoup,确实很详细
存在的缺陷:
爬取的标签还参合着其他东西,例如最后一个p标签爬取内容简介的东西,
爬取下来的留有较大的空格暂时不知道怎么除掉
没有进行文件的存储
总体过程还算是比较好的,虽然豆瓣上显示有那么多,但是实际上豆瓣并没有那么多页数,一共也就50 页, 尴尬ing。。今晚就差不多这样结束吧。工作压力也是挺大的,干活的跟说话的想法确实不一样。
# encoding=utf8 import requests import re from bs4 import BeautifulSoup # 此处是爬去豆瓣读书的随笔页面 # page=0 # doubarurl = 'https://book.douban.com/tag/%E9%9A%8F%E7%AC%94?start='+str(page)+'&type=T' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400' , 'Cookie': 'bid=I0klBiKF3nQ; ll="118277"; ap=1; gr_user_id=ffdf2f63-ec37-49b5-99e8-0e0d28741172; _pk_ref.100001.3ac3=%5B%22%22%2C%22%22%2C1498223948%2C%22https%3A%2F%2Fwww.douban.com%2F%22%5D; _vwo_uuid_v2=8C5B24903B1D1D3886FE478B91C5DE97|7eac18658e7fecbbf3798b88cfcf6113; gr_session_id_22c937bbd8ebd703f2d8e9445f7dfd03=9c102dec-1bbc-4abe-ba94-298c209e7fc5; gr_cs1_9c102dec-1bbc-4abe-ba94-298c209e7fc5=user_id%3A0; _pk_id.100001.3ac3=957aa3bc98093993.1498223948.1.1498224184.1498223948.; _pk_ses.100001.3ac3=*' , } def getDouBanHtml(url): print('url === '+url) req = requests.get(url, headers) html = req.text return html def parseDouBanHtml(html): # print(html) soup = BeautifulSoup(html, 'lxml') # 标题 main_title_list = soup.findAll('ul',{'class':'subject-list'}) title = soup.findAll('a',attrs={'title':True}) # 出版社 address = soup.findAll('div',{'class':'pub'}) for adress in address: print(str(adress.string).strip()) print('==='*40) # 评价 recomends = soup.findAll('span',{'class':'p1'}) for recomend in recomends: print(str(recomend.string).strip()) print('---'*40) # 介绍 details = soup.findAll('p') for detail in details: print(str(detail.string).strip()) print('^^^^'*40) # print(title) for item in title: print(str(item.string).strip()) print("*"*40) # for title in main_title_list: # print(title) # print(main_title_list) # 叠加 def diejia(n): if n == 0: return 0 else: return (n-1)*20 print(diejia(0)) # data = getDouBanHtml(doubarurl) # print(data) # parseDouBanHtml(data) for i in range(0,95): index = diejia(i) print('i '+str(i)+' pageIndex '+str(index)) doubarurl = 'https://book.douban.com/tag/%E9%9A%8F%E7%AC%94?start=' + str(index) + '&type=T' print('doubarurl '+doubarurl) data = getDouBanHtml(doubarurl) parseDouBanHtml(data)
不错,今晚爬的就是豆瓣的读书随笔页面
说下思路吧:
一开始先把url考过来,然后进行对比,发现
https://book.douban.com/tag/%E9%9A%8F%E7%AC%94?start=20&type=T
每次变化都是start= 后的数字变化的, 现在我们就暂且爬取一页的数据,
用的还是上一次用的requests和bs4 下的 beautifulsoup
困扰很久的是title标签的获取,暂时上传不了图片,就先这样解释一下:
因为title是一个attr,不是一个tag,这个我也是不是大懂,边百度边进行调试的,
title = soup.findAll('a',attrs={'title':True})
这里说的是如果不知道title是什么value 就直接设置为true,这样爬取的就是title下的内容了
还有一个就是 爬完后,得到的并不是标题,而是标题连接一些其他的标签一块给爬出来了。此时我们就用title.string方法得到它的字符串内容,这样就可爬出来
注意一点的是:
每次其他类型转string类型都转不了,我们可以用str(xxx) 或者”“.join(xxx)方法转为string,这种视情况而定。
可能主要还是beautifulsoup 这个库用不熟,本来也不是很熟,这是我第二次爬出来比较简陋的一些数据, 不过比第一次的多了一些
整体思路:
先把整个网页爬取下来,再进行某个字段的爬取,然后进行其他字段的爬取,最后多页进行爬取,这里借鉴了下大才哥的beautifulsoup,确实很详细
存在的缺陷:
爬取的标签还参合着其他东西,例如最后一个p标签爬取内容简介的东西,
爬取下来的留有较大的空格暂时不知道怎么除掉
没有进行文件的存储
总体过程还算是比较好的,虽然豆瓣上显示有那么多,但是实际上豆瓣并没有那么多页数,一共也就50 页, 尴尬ing。。今晚就差不多这样结束吧。工作压力也是挺大的,干活的跟说话的想法确实不一样。
相关文章推荐
- python3 [入门基础实战] 爬虫入门之智联招聘的学习(一)
- python3 [入门基础实战] 爬虫之四季花果园的采果模块
- python3[爬虫基础入门实战] 爬取豆瓣电影排行top250
- python3 [入门基础实战] 爬虫入门之xpath的学习
- python3 [入门基础实战] 爬虫入门之智联招聘的学习(一)
- [置顶] python爬虫实践——零基础快速入门(六)解决动态页面爬取问题
- 2018年大神带你用Python零基础进阶课程入门爬虫flask实战
- python3 [入门基础实战] 爬虫入门之xpath爬取脚本之家python栏目
- python3 [入门基础实战] 爬虫入门之爬取豆瓣阅读中文电子书[热门排序]
- python3 [入门基础实战] 爬虫入门之爬取糗事百科
- python3 [入门基础实战] 爬虫入门之刷博客浏览量
- Python爬虫入门二之爬虫基础了解
- python3爬虫之入门基础和正则表达式
- Python爬虫----爬虫入门(5)---Requests基础
- Python基础知识——爬虫入门
- 转 Python爬虫入门二之爬虫基础了解
- Python爬虫入门二之爬虫基础了解
- Python爬虫入门二之爬虫基础了解
- Python爬虫入门实战一
- Python爬虫入门(2):爬虫基础了解