爬取豆瓣的最新推荐图书

看了CSDN老师的直播课,里面有个参考例程爬取豆瓣评分最高的250部电影,阅读完源代码后仿照自己做了个爬取豆瓣最新图书,只有一个页面所以爬取的较简单。我爬取的是推荐图书的基本信息,也就是能在页面上看到的信息都可以爬取出来。网页源代码有个小小的不同,就是左右两边的图书简介信息存放的源代码节点位置有点不同,我加了代码进去但是其中一个注释掉了。代码相对比较简单。

from requests.exceptions import RequestException
from bs4 import BeautifulSoup
import requests
import re,time,json

def getPage(url):
‘’‘爬取指定url页面信息’’’
try:
#定义请求头信息
headers = {
‘User-Agent’:‘User-Agent:Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/2010010FIrefox/4.0.1’

        }
    # 执行爬取
    res = requests.get(url,headers=headers)
    # 判断响应状态,并响应爬取内容
    if res.status_code == 200:
        return res.text
    else:
        return None
except RequestException:
    return None

def parsePage(content):
‘’‘解析爬取网页中的内容,并返回字段结果’’’
#解析HTML文档
doc = pq(content)
#获取网页中所有标签并遍历输出标签名
items = doc(“div.detail-frame”)
#遍历封装数据并返回
for item in items.items():
yield {
‘书名:’ :item.find(“a”).text(),
‘图片来源:’:item.find(“a”).attr(‘href’),
‘评分:’ :item.find("p.rating ").text(),
‘作者:’ :item.find(“p.color-gray”).text(),
‘简介’ :item.find(‘p.detail’).text()

       # '读取全部信息:'  :item.find("p").text(),
        
        }

def writeFile(content):
‘’‘执行文件的写操作’’’
print(content)

def main():
url = “https://book.douban.com/latest
#print(url)
html = getPage(url)
#判断是否爬取到数据,并调用解析函数
if html:
for item in parsePage(html):
writeFile(item)

if name == ‘main’:
    main()
    time.sleep(2)

猜你喜欢

转载自blog.csdn.net/wg5foc08/article/details/88782069