本项目为爬取豆瓣图书首页中展示的图书,获取其书名、作者和作品链接,仅供学习。
使用requests库请求网页源代码,pyquery库进行解析获取含有数据的节点。
结果保存在一个字典里面,最后保存到JSON文件中
有不足或者想法的欢迎指正,共同学习。
from pyquery import PyQuery as pq
import requests
import json
# 获取豆瓣图书页面中的书名、作者,链接等信息
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}
# 获取网页源代码
douban_url = 'https://book.douban.com/'
source_page = requests.get(douban_url, headers=headers)
source_page.text
#print(source_page.text)
# 解析源代码,获取含有信息的节点
html = pq(source_page.text)
books = html('.info .title a').items() # 获取到保存着书名的a节点
authors = html('.info .author').items() #获取到保存着作者的author节点
# 保存到json文件中去
with open('data.json', 'a', encoding = 'utf-8') as file:
for book, author, url in zip(books, authors, books):
# 创建一个字典保存数据
book_data = {
'书名': book.text(),
'作者': author.text(),
'网址': url.attr('href')
}
print(book_data)
# indent:缩进字符数 ensure_ascii为是否转码
file.write(json.dumps(book_data, indent=2, ensure_ascii=False) + '\n')