利用Python爬虫爬取豆瓣某标签下的所有书籍信息

开发环境 Python 3.6
编译器 PyCharm

网络请求

1
2
3
4
5
6
import requests
for tag in ['%E8%AE%A1%E7%AE%97%E6%9C%BA', '%e5%b0%8f%e8%af%b4']:
#any tags你想搜索的任意标签名
for a in [0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440,460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, 800, 820, 840, 860,880, 900, 920, 940, 960, 980]:
url = 'https://book.douban.com/tag/'+tag+'?start='+str(a)
web_data = requests.get(url)
  • requests库用于网络请求 用requests的get方法访问网站获得网页数据。
  • tag使用的是中文标签在URL编码转换后。
  • 第四行代码可以简写 当时年少无知不懂写。
  • web_data用来存放返回数据。

解析数据

1
2
3
from bs4 import BeautifulSoup
soup = BeautifulSoup(web_data.text,'lxml')
titles = soup.select('#subject_list > ul > li > div.info > h2 > a')
  • 这里我使用了一个强大的第三方库 BeautifulSoup。
  • lxml用来进行文件格式解析,同样也是强大的库,用于是html格式更加完整。
  • web_data记得使用text方法获得内容,否则只会得到200提示。
  • soup.select方法有多种使用方法,这里只是以网页内在结构提取数据,其他方法还有通过class抓取。

打印结果

1
2
for title in titles:
print(title.get_text(),title.get('href'))
  • 循环游历数组,打印出每一个数据。
  • 这里只打印出书名和书籍链接,需要其他信息,可以自行修改。

关于我

觉得本文不错?请支持我