python:使用requests和bs4爬去豆瓣图书信息
2017-11-18 22:32
531 查看
地址栏url格式
https://book.douban.com/tag/小说?start=0&type=T
真实url
https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start=0&type=T
在地址栏显示的是小说可是真实的URL是个并不是图书2个字,而是一串乱码
可以用urllib.quote()进行转换
其中第一页start=0
每向后一页,+20
由于有的书的信息不全(比如当点评人数不足时,没有评分,所以用了很多的try,不然很容易会出错停止)
爬的过程中的问题:
1、一共多少页的问题,在mmjpg中,我是通过找到网页上一共有多少张来解决的,但是豆瓣上显示100页,其实是没有100页的,小说会在50页左右就没有了,所以以前的方法行不通。
于是我设置了一个死循环,当找不到图书信息时,break。不然每次都往后一页
为了防止可能会出现其他的情况,我设置了一个try_times当没有图书信息时,多试几次
完整代码:https://github.com/YoungChild/douban_python
https://book.douban.com/tag/小说?start=0&type=T
真实url
https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start=0&type=T
在地址栏显示的是小说可是真实的URL是个并不是图书2个字,而是一串乱码
可以用urllib.quote()进行转换
其中第一页start=0
每向后一页,+20
由于有的书的信息不全(比如当点评人数不足时,没有评分,所以用了很多的try,不然很容易会出错停止)
#读取每本书的信息 for i in xrange(len(all_books)): try: book_name = all_books[i].find('a', attrs={'title': True}).get('title').strip().encode('utf-8') except: book_name = '书名读取失败' try: book_url = all_books[i].find('a', attrs={'title': True}).get('href').strip().encode('utf-8') except: book_url = 'URL读取失败' try: book_wdp = all_books[i].find('div', attrs={'class': 'pub'}).get_text().strip().encode('utf-8').split('/') except: book_wdp = ['读取失败', '读取失败', '读取失败'] try: book_writer = book_wdp[0].strip() except: book_writer = '读取失败' try: book_date = book_wdp[-2].strip() except: book_date = '读取失败' try: book_price = book_wdp[-1].strip() except: book_price = 0 try: book_rating = float(all_books[i].find('div', attrs={'class': 'star clearfix'}).find('span', attrs={'class': 'rating_nums'}).get_text().strip().encode('utf-8')) except: book_rating = 0.0 try: book_p_num = int(all_books[i].find('div', attrs={'class': 'star clearfix'}).find('span', attrs={'class': 'pl'}).get_text().strip().encode('utf-8')[1: -10]) except: book_p_num = 0 book_list.append([book_name, book_url, book_writer, book_date, book_price, book_rating, book_p_num])
爬的过程中的问题:
1、一共多少页的问题,在mmjpg中,我是通过找到网页上一共有多少张来解决的,但是豆瓣上显示100页,其实是没有100页的,小说会在50页左右就没有了,所以以前的方法行不通。
于是我设置了一个死循环,当找不到图书信息时,break。不然每次都往后一页
为了防止可能会出现其他的情况,我设置了一个try_times当没有图书信息时,多试几次
完整代码:https://github.com/YoungChild/douban_python
相关文章推荐
- Python爬虫爬取豆瓣图书的信息和封面,放入MySQL数据库中。
- P_010.~慢慢悠悠~使用Python的Scrapy框架成功爬取豆瓣电影的全部信息
- python 实现用ISBN从豆瓣获取图书信息
- python爬虫基础知识——requests、bs4的使用
- Python爬虫 - 使用requests和re模块爬取慕课网课程信息
- Python爬取豆瓣图书信息学习记录
- python爬虫实现获取豆瓣图书的top250的信息-beautifulsoup实现
- Python爬虫(一)——豆瓣下图书信息
- 使用python抓取有路网图书信息(原创)
- Python爬虫(入门+进阶)学习笔记 1-3 使用Requests爬取豆瓣短评
- python使用requests和beautifusoup模块爬取学校网站的就业中心信息,并发送至自己的邮箱
- python爬虫之豆瓣图书信息几行字
- Python 2.7_利用xpath语法爬取豆瓣图书top250信息_20170129
- 使用python+urllib爬取最受欢迎豆瓣影评信息
- python1-3 使用Requests爬取豆瓣短评
- Python爬虫——4.6使用requests和正则表达式、随机代理爬取淘宝网商品信息
- 使用python抓取豆瓣电影信息
- 使用ISBN码通过豆瓣API获取图书信息(ThinkPHP)
- 使用python抓取有道词典的网页并返回结果信息
- 使用python获取CPU和内存信息(linux系统)