日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python3 爬虫爬取中国图书网(淘书团) 记录

發布時間:2023/11/29 python 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3 爬虫爬取中国图书网(淘书团) 记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本人為一名剛開始學Python爬蟲的小白,開貼僅為記錄下自己的學習歷程,方便做review

?

要爬取鏈接:http://tuan.bookschina.com/

要爬取內容: 圖書名稱, 圖書價格, 以及對應預覽圖的link

本文用到py packages: requests, BeautifulSoup, json, cvs

打開中國圖書網團購頁面時,發現網站的信息是動態加載的:

Anyways,先不考慮加載更多頁的圖書信息,我們從嘗試著抓取第一頁的圖書信息開始:

本次爬蟲所用的瀏覽器為chrome

所以我們打開瀏覽器的開發者模式F12,可以看到頁面加載的相應信息

為了實現模擬瀏覽器登錄功能,我們需要查看header的信息:

完成對應的代碼:

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36','Host': 'tuan.bookschina.com','Referer': 'http://tuan.bookschina.com/','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9' }

?

接下來我們需要做的就是分析整個中國圖書網的DOM,去查看我們需要的信息,都封裝在哪些tags里面

經過地毯式搜索。。。。我們發現我們所需要的信息,都封裝在 <ul id='taoList".....>的子節點li里面

?

?

?所以,我們打算采取BeautifulSoup的解析抓取功能,來實現拿到li內的我們需要的信息

對應的代碼:

url = 'http://tuan.bookschina.com/' response = requests.get(url, headers = header) #模仿瀏覽器登錄 response.encoding = 'utf-8' soup = BeautifulSoup(response.text,'html.parser') for item in soup.select('div .taoListInner ul li'):print(item.select('h2')[0].text) #返回對象為數組print(item.select('.salePrice')[0].text)print(item.select('img')[0].get('src')) #get方法用來取得tab內部的屬性值

?

首先我們需要調用requests的get方法,拿到響應的response,然后通過BS進行解析,我們會發現,在class 名為 taoListInner的div標簽中,封裝了我們想要的ul下的li

查看了beautifulsoup的文檔,對比了find_all 和select,決定調用select方法拿到對應的標簽,然后拿到對應h2標簽下的書名; salePrice class下的價格; 以及img標簽

內src的預覽圖link。這樣就可以打印出我們想要的第一頁所顯示的書籍的信息了。

?

但是問題就出來了。。。如果我們想拿后續頁面的更多書籍信息,該怎么辦呢,因為bs的select方法是只能解析靜態的Dom的

所以我們懷疑,后續的圖書數據是通過Ajax 或者 JS 加載的

我們來到開發者模式的XHR下面,我們會發現,每當我們下拉滾動條,刷新圖書信息的時候,會跟隨者刷新出一個GroupList?.....的鏈接

我們打開他

?

驚喜的發現在Preview里,封裝了我們需要的數據,并且是以Json形式予以保存的,這樣變能讓我們方便的拿到動態生成的圖書數據了。

?

?

所以我們要拿到這個Json數據,首先需要去拿他的Request URL

當前的URL為:http://tuan.bookschina.com/Home/GroupList?Type=0&Category=0&Price=0&Order=11&Page=2&Tyjson=true

我們會發現一個規律,每當有新的書籍信息刷新一次的時候,生成的GroupList?...URL中的Page=?也會跟隨遞增

所以問題迎刃而解了。。。。我們只需要去通過遍歷URL并拿到返回的JSON進行解析,便可以拿到我們想要的全部數據了

也驗證了一個說法,許多動態加載的網站,都會把Json數據封裝作為response,這樣就給我們的爬蟲找到一條捷徑

?

url = 'http://tuan.bookschina.com/Home/GroupList?Type=0&Category=0&Price=0&Order=11&Page=2&Tyjson=true' response = requests.get(url) result = json.loads(response.text) bookinfo = {} for data in result['Data']:bookinfo['bookName'] = data['book_name']bookinfo['price'] = data['group_price']bookinfo['iconLink'] = data['group_image'] print(url)

?

這里用里調用了loads()方法,把返回的json數據轉換為python的字典,方便拿數據

拿到數據后我們決定把數據存入磁盤,生成cvs的excel文件,相關的寫入文件方法,請查閱python3官方文檔。

方便做進一步的數據分析。

?

所以,本次爬蟲小實驗全部代碼如下:

import requests from bs4 import BeautifulSoup import json import csvdef parse_one_page():header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36','Host': 'tuan.bookschina.com','Referer': 'http://tuan.bookschina.com/','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9'}url = 'http://tuan.bookschina.com/'response = requests.get(url, headers = header) #模仿瀏覽器登錄response.encoding = 'utf-8'soup = BeautifulSoup(response.text,'html.parser')for item in soup.select('div .taoListInner ul li'):print(item.select('h2')[0].text) #返回對象為數組print(item.select('.salePrice')[0].text)print(item.select('img')[0].get('src')) #get方法用來取得tab內部的屬性值def dynamtic_scraping_data(page, headers, fileName):for i in range(page):url = 'http://tuan.bookschina.com/Home/GroupList?Type=0&Category=0&Price=0&Order=11&Page=' + str(i) + '&Tyjson=true'response = requests.get(url)result = json.loads(response.text)bookinfo = {}for data in result['Data']:bookinfo['bookName'] = data['book_name']bookinfo['price'] = data['group_price']bookinfo['iconLink'] = data['group_image']write_csv_rows(fileName,headers,bookinfo)print(url)def write_csv_headers(path, headers):with open(path, 'a', encoding='gb18030', newline='') as f:f_csv = csv.DictWriter(f, headers)f_csv.writeheader()def write_csv_rows(path, headers, rows):with open(path, 'a', encoding='gb18030', newline='') as f:f_csv = csv.DictWriter(f, headers)# 如果寫入數據為字典,則寫入一行,否則寫入多行if type(rows) == type({}):f_csv.writerow(rows)else:f_csv.writerows(rows) def main(page):# parse_one_page() #Tip: beautifulSoup testcsv_filename = "bookInfo.csv"headers = ['bookName', 'price', 'iconLink']write_csv_headers(csv_filename,headers)dynamtic_scraping_data(page, headers, csv_filename)if __name__ == '__main__':main(20) #input page num to start

?

轉載于:https://www.cnblogs.com/ChrisInsistPy/p/8981820.html

總結

以上是生活随笔為你收集整理的Python3 爬虫爬取中国图书网(淘书团) 记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天草天天干 | 日本一区欧美 | 四色成人网 | 香蕉久久一区二区三区 | 茄子视频懂你更多在线观看 | 91毛片网站 | 五月天最新网址 | 亚洲欧美成人一区二区 | 一区在线看 | 99视频免费在线观看 | 91福利片| 久久精品这里 | 熟妇女人妻丰满少妇中文字幕 | 麻豆视频精品 | 一级片手机在线观看 | 日韩欧美大片在线观看 | 国产一区二区三区视频免费在线观看 | 91插插插影库永久免费 | 精品国产伦一区二区三区免费 | 黄色录像片子 | 91欧美国产 | 看免费一级片 | 毛片毛片毛片毛片毛片毛片毛片 | 国产精品三级av | kendra lust free xxx| 夜夜精品一区二区无码 | 麻豆专区| 欧美黄色a | 性猛交富婆╳xxx乱大交天津 | 长篇h版少妇沉沦交换 | 波多野结衣高清视频 | 国产精品999. | 裸体黄色片 | 精品欧美一区二区久久久久 | 在线看免费毛片 | 中国无码人妻丰满熟妇啪啪软件 | 一区精品二区国产 | 久草aⅴ | 大香伊人 | 亚洲自拍av在线 | 日韩精品一区二区三区在线视频 | 免看黄大片aa | 九色视频在线播放 | 欧美 变态 另类 人妖 | 精品视频一二三 | 国产成人av电影 | 国产a视频 | 人妻精品久久久久中文 | 青草视频在线 | 国产午夜福利一区二区 | 亚洲av首页在线 | 中文字幕+乱码+中文字幕一区 | 日本va欧美va欧美va精品 | 污网站在线看 | 亚洲精品视频免费 | 国产一区二区三区四区五区在线 | 亚州欧美日韩 | 日韩欧美国产中文字幕 | 97久久久久久 | 国产精品美女www爽爽爽 | 久久久久久网址 | 黑鬼巨鞭白妞冒白浆 | 性xxxx狂欢老少配o | 天堂国产 | 天天干天天看 | 色久月 | 欧美变态口味重另类在线视频 | 娇小的粉嫩xxx极品 国产精品人人爽人人爽 | 在线观看亚洲a | 成人欧美在线 | 国产宾馆实践打屁股91 | 国产高清露脸 | 特大黑人巨交吊性xxxxhd | 日本亚洲一区二区三区 | 青青草青娱乐 | 亚洲人久久 | 久久激情小说 | 狠狠搞狠狠干 | 超碰97人| 桃谷绘里香番号 | 视频二区欧美 | 日本一本高清视频 | 欧美日韩国产精品一区 | 亚洲综合精品在线 | 久久久久久午夜 | 少妇人妻一级a毛片 | 欧美成人高清 | 美女被男人插 | 亚洲成人观看 | 日本免费一区二区三区四区五六区 | 日韩色在线| 人妻激情文学 | 涩涩视频在线播放 | 精品人妻在线播放 | 日韩高清成人 | 黄片毛片在线免费观看 | 玖玖zyz | 99爱视频在线 | 青草视频在线 |