中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python爬取當當網所有數據分析書籍信息

發布時間:2022-01-13 15:23:59 來源:億速云 閱讀:928 作者:小新 欄目:大數據

小編給大家分享一下如何使用python爬取當當網所有數據分析書籍信息,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!


1、爬取目標

對于要爬取的當當網書籍信息,首先打開當當網頁,以數據分析為關鍵字搜索出來頁面所有書籍信息。如下圖:

如何使用python爬取當當網所有數據分析書籍信息

本次爬取的結果有11項:
(1)每頁序號
(2)商品ID
(3)標題
(4)書籍價格
(5)書籍原價
(6)書籍折扣
(7)電子書價格
(8)作者
(9)出版時間
(10)出版社
(11)書籍評論量

2、爬取過程

(1)確定url地址

分析網頁頁面,當輸入數據關系關鍵字以后,點擊搜索出來所有書籍網頁信息后,將網頁拉到最下面可以看到如下圖:
如何使用python爬取當當網所有數據分析書籍信息

可見此網頁是翻頁的,因此,點擊頁面2、3、1,提取網頁的url如下:

http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=2

http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=3

http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=1

從每頁的URL地址信息可以發現每一個頁面的地址差異就是page_index的值,所以url地址可以確認為:

http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=

page_index的值,我們可以通過循環依次在地址后面添加。

代碼如下:
urls = ['http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index={}'.format(i) for i in range(1,101)]

(2)確定爬取節點

有了url地址,就可以使用lxml庫來獲取網頁信息進行解析,得到具體的爬取信息。鼠標右鍵,點擊“檢查”,如下圖:

如何使用python爬取當當網所有數據分析書籍信息

通過網頁html里面的信息對應查找,可以找到li對應每個書籍信息,詳細的信息如下圖可見:

如何使用python爬取當當網所有數據分析書籍信息

可以看到書籍名字、價格等信息,然后通過Xpath可以逐一提取出來。詳細代碼如下:

html=requests.get(url,headers=headers)# html.encoding = "utf-8"# print('第一層調用是否返回正常:',html)html.encoding = html.apparent_encoding  # 將亂碼進行編碼selector=etree.HTML(html.text)# print(selector)datas=selector.xpath('//div[@class="con shoplist"]')# print(datas)
for data in datas:   Classs = data.xpath('div/ul/li/@class')                        #line1-line60   IDDs = data.xpath('div/ul/li/@id')                              #id   titles = data.xpath('div/ul/li/a/@title')                      #標題   prices = data.xpath('div/ul/li/p[3]/span[1]/text()')           #書籍價格   source_prices = data.xpath('div/ul/li/p[3]/span[2]/text()')    #書籍原價   discounts = data.xpath('div/ul/li/p[3]/span[3]/text()')        #書籍折扣   # dian_prices = data.xpath('div/ul/li/p[3]/a[2]/i/text()')       #電子書價格   authors = data.xpath('div/ul/li/p[5]/span[1]/a[1]/@title')     #作者   publish_times = data.xpath('div/ul/li/p[5]/span[2]/text()')    #出版時間   publishs = data.xpath('div/ul/li/p[5]/span[3]/a/text()')       #出版社   comments = data.xpath('div/ul/li/p[4]/a/text()')               #書籍評論量   urls=data.xpath('div/ul/li/a/@href')

備注:基于如果想爬取電子書價格,由于有些書籍沒有電子書價格,因此爬取出來會錯行,務必通過提取書籍頁面url,遞歸再次爬取詳情頁進行空值處理,避免錯行。

(3)保存爬取信息入數據庫

此處我們將爬取的信息存儲入數據庫,就需要先連接數據庫和建立數據庫表,便于后續存儲。數據連接和表建立代碼如下:

db = pymysql.connect(host='localhost', user='root', passwd='庫密碼', db='庫名稱:Learn_data', port=3306, charset='utf8')print("數據庫連接")cursor = db.cursor()cursor.execute("DROP TABLE IF EXISTS Learn_data.dangdangweb_info_detail")sql = """CREATE TABLE IF not EXISTS Learn_data.dangdangweb_info_detail (   id int auto_increment primary key,   Class CHAR(100),   IDD CHAR(100),   title CHAR(100),   price CHAR(100),   source_price CHAR(100),   discount CHAR(100),   author CHAR(100),   publish_time CHAR(100),   publish CHAR(100),   comment CHAR(100),   dian_price CHAR(100))DEFAULT CHARSET=utf8"""cursor.execute(sql)

爬取的數據存儲入表中代碼如下:
cursor.execute("insert into dangdangweb_info_detail (Class,IDD,title,price,source_price,discount,author,publish_time,publish,comment,dian_price)"              "values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",       (str(Class),str(IDD),str(title),str(price),str(source_price),str(discount),str(author)        ,str(publish_time),str(publish),str(comment),str(dian_price[0])))

最后必須使用:db.commit() 關閉數據庫,不然數據無法正確存儲入表。

3、爬取結果

最后,我們將上面的代碼整合起來就可以正常爬取。存儲的結果截圖如下:

如何使用python爬取當當網所有數據分析書籍信息

以上是“如何使用python爬取當當網所有數據分析書籍信息”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高安市| 织金县| 平潭县| 施秉县| 周宁县| 蓬安县| 隆化县| 林口县| 宜都市| 吉安市| 宜阳县| 长乐市| 东乌珠穆沁旗| 内黄县| 洞口县| 慈利县| 上高县| 故城县| 宣武区| 盐亭县| 莲花县| 工布江达县| 从江县| 襄汾县| 白水县| 收藏| 邛崃市| 徐水县| 临沂市| 集安市| 长垣县| 汕头市| 安多县| 连山| 邳州市| 濉溪县| 南昌市| 大石桥市| 二连浩特市| 沅陵县| 宁南县|