爬取豆瓣的最新推荐图书
看了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)
上一篇: Base64格式在工作中遇到的相应问题
下一篇: java实现RSA加解密工具类