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

歡迎訪問 生活随笔!

生活随笔

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

python

Python3 + BeautifulSoup 爬取Steam热销商品数据

發布時間:2024/3/12 python 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3 + BeautifulSoup 爬取Steam热销商品数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次用了BeautifulSoup庫來爬取Steam的熱銷商品,BeautifulSoup更側重的是從頁面的結構解析,
根據標簽元素等來爬取數據,這次遇到兩個問題:
1.Steam熱銷商品列表經常有重復的,所以我建了一個列表,把爬到的數據存進去,每次爬的時候都校驗跟列表里有沒有重復,有的話就跳過,防止重復爬取。
2.我需要同時遍歷兩個表,找到了zip()函數解決方案,下面簡單介紹一下。

zip()

大家看下面的實例應該就能明白。

xs = ['我是','你是','他是'] ys = ['第一','第二','第三']for x, y in zip(xs,ys):print(x+y)

輸出結果如下:

我是第一 你是第二 他是第三

下面是完整爬蟲代碼,使用的庫請自行安裝不另做教學:

from bs4 import BeautifulSoup import xlwt,os,time,requestspage = 1 #起始頁數 total_pages = 3 #總頁數,爬10頁請設定為11 count = 1 #每抓到一次游戲名稱增加一次,用來排序 pool=[] #每次抓到的游戲名稱都會放進pool列表里,用來去重 document = 'Steam_GameTopSellers' #設定爬取的數據存的excel的檔案名稱 wb = xlwt.Workbook() #創建excel ws = wb.add_sheet("TopSellers") #在excel新增一個sheet頁 ws.write(0,0,'#')#三個參數,1:第幾行,2:第幾列,3:輸入什么值 ws.write(0,1,'Game Title') #在excel第一行第二列先行寫入'Game Title' ws.write(0,2,'Released Date') #在excel第一行第三列先行寫入'Released Date' root = os.getcwd() #獲取當前工作路徑 date = time.strftime('%Y%m%d',time.localtime(time.time())) #獲取當前日期 格式為yyyymmddwhile page<total_pages:url = 'https://store.steampowered.com/search/?tags=597&filter=topsellers&page=%s' % str(page) #設定url,變量控制頁數r = requests.session()res = r.get(url).textsoup = BeautifulSoup(res,"html.parser")game_names = soup.find_all('span',attrs={'class':'title'}) # 遍歷所有span標簽,且class屬性值為'title' 即當前頁面所有游戲名稱released_dates = soup.find_all('div',attrs={'class':'col search_released responsive_secondrow'}) #當前頁面所有發行日期for game_name, released_date in zip(game_names,released_dates): #同時遍歷連個列表的方法 for x,y in zip(xs,ys):if game_name.string in pool: #如果爬到的數據在我的pool列表里存在的話就跳過,反之繼續爬continueelse:print('%s .GameName:%s Released on:%s' % (count,game_name.string,released_date.string)) #打印給自己看的pool.append(game_name.string) #把爬到的數據增加到pool列表里ws.write(count,0,count) #往excel寫入編號ws.write(count,1,game_name.string) #往excel寫入游戲名稱ws.write(count,2,released_date.string) #往excel寫入發行日期count += 1 #每遍歷一次 count 變量 +1 ,用來排序寫入excel里的順序rate = page / (total_pages - 1)print('--------------------------第%s頁爬取完成--------------------已完成: %.2f%%' % (str(page),(rate * 100)))page += 1wb.save('%s%s.xls' % (document,date)) #保存excel print('--------------------------爬取完成--------------------------') print('所有數據已存至:%s\%s%s.xls' % (root,document,date))

爬取結果(一共爬取1242條數據,51頁~60頁都是重復的):

結語:
這steam真是。。。后十頁就是重復的,我一開始以為是有什么防爬機制,
后來在實際頁面檢查確實有重復的情況。

總結

以上是生活随笔為你收集整理的Python3 + BeautifulSoup 爬取Steam热销商品数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美少妇视频 | 久久久国产亚洲 | 四川黄色一级片 | 色婷婷成人 | 欧美国产成人在线 | 亚洲天堂社区 | 超碰资源在线 | 在线观看免费人成视频 | 黄色动漫在线观看 | 日韩爆操 | av中文字幕网 | 亚洲无码高清精品 | 欧美成人精品一区 | 成人免费看片&#39; | 粉嫩av一区二区夜夜嗨 | 天天夜夜骑| 亚洲国产综合一区 | 黄页网站在线 | 日韩一级av毛片 | 特级特黄刘亦菲aaa级 | 奇米影视播放器 | 99在线播放 | 国产激情第一页 | 少妇太紧太爽又黄又硬又爽小说 | 中文字幕无码毛片免费看 | 国产精品人人 | 羞羞成人| 国产主播中文字幕 | 欧美日韩国产亚洲一区 | 日本免费在线观看 | 中文字幕av专区 | 精品久久9999 | 第一福利在线视频 | www裸玉足久久久 | 精品爆乳一区二区三区无码av | 中文字字幕 | 人妻无码一区二区三区 | 一区在线视频 | 久久黄色录像 | 亚洲最大av网站 | 伊人久久爱| 亚洲午夜精品久久久 | 亚洲精品影院在线 | 91l九色lporny | 伊人影院在线视频 | 亚洲一级中文字幕 | 国产一级片 | 成人h动漫精品一区二区无码 | 蜜桃成熟时李丽珍国语 | 久久精品国产电影 | 一区二区三区视频免费 | 手机在线一区二区 | 国产精品成人国产乱 | 亚洲你我色 | 男女搞鸡网站 | 欧美色图校园春色 | 国产精品国产精品国产专区不卡 | 久久精品在线播放 | 免费看欧美成人a片无码 | 国产午夜精品久久久久久久 | 国产乱人乱偷精品视频a人人澡 | 国产骚b| 国产精品宾馆在线精品酒店 | 91爱爱.com | 操操干干 | 亚洲国产婷婷香蕉久久久久久99 | 免费中文字幕视频 | 亚洲av无码一区二区三区dv | 黄色三级视频 | 91黄在线观看 | 老司机成人在线 | 免费啊v在线观看 | 亚洲成人黄色影院 | 亚洲精品 日韩无码 | 午夜国产一区二区三区 | 丝瓜色版 | 免费看日产一区二区三区 | 日韩精品123 | 日韩大片免费观看视频播放 | 成年人视频在线免费观看 | 免费在线观看黄 | 爱爱福利社 | 无码人妻丰满熟妇啪啪欧美 | 国产免费一区二区三区网站免费 | 伊人网伊人影院 | 好吊一区 | 337p亚洲精品色噜噜噜 | 中文字幕一区二区三区精品 | 久久久久久久极品内射 | 极品久久| 国产精品美女毛片真酒店 | a亚洲精品| 伊人网站在线观看 | 亚洲最大福利网站 | 丁香七月婷婷 | 国产明星换脸xxxx色视频 | 波多野结衣三级视频 | 国产亚洲欧美在线精品 | www.四虎在线观看 |