百木园-与人分享,
就是让自己快乐。

爬虫初探:豆瓣书籍信息爬取

给定需求:利用Python爬虫爬取豆瓣网编程类的前n页书籍的‘书籍名称’、‘著作者/译者/出版社/出版日期/价格’和‘评分’,并将这三组数据信息分列保存至CSV文件中。

问题分析:分三步骤实现获取网页内容、提取信息到数据结构中和保存书籍信息。

(1)步骤1:从网络上获取编程书籍网页内容;

(2)步骤2:提取网页内容中的书籍信息‘书籍名称’、‘著作者/译者/出版社/出版日期/价格’和‘评分’到数据结构中;

(3)步骤3:利用数据结构将书籍信息保存至CSV文件中。

代码实现:

import requests
from bs4 import BeautifulSoup
import csv

def getHTMLText(url):
try:
kv
= {\"user-agent\":\"Mozilla/5.0\"}
r
= requests.get(url,headers=kv)
r.raise_for_status()
r.encoding
= r.apparent_encoding
return r.text
except:
print(\"产生异常\")

def fillBookInfo(blist,html):
soup
= BeautifulSoup(html,\"html.parser\")
for i in soup.find_all(\'a\'):
if i.get(\'title\') == None:
pass
else:
blist[0].append(i.get(
\'title\'))
for j in soup.find_all(\'div\',class_=\"pub\"):
blist[
1].append(j.string.replace(\'\\n\',\'\').strip())
for k in soup.find_all(\'span\',class_=\"rating_nums\"):
blist[
2].append(k.string)

def saveBookInfo(blist,num):
with open(
\'E:\\Spider\\BookInfo.csv\',\'w\',newline=\"\",encoding=\'gb18030\') as f:
f_csv
= csv.writer(f)
f_csv.writerow([
\"书籍名称\",\"著作者/译者/出版社/出版日期/价格\",\"评分\"])
for i in range(num):
f_csv.writerow([blist[0][i],blist[
1][i],blist[2][i]])

def main():
blist
=[[],[],[]]
depth
= 5
for p in range(depth):
url
= \"https://book.douban.com/tag/%E7%BC%96%E7%A8%8B?start=\"+str(p*20)+\"&type=T\"
html
= getHTMLText(url)
fillBookInfo(blist,html)
saveBookInfo(blist,depth
*20)

main()

来源:https://www.cnblogs.com/shujian/p/15797884.html
图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 爬虫初探:豆瓣书籍信息爬取

相关推荐

  • 暂无文章