Python数据分析:爬虫从网页爬取数据需要几步?
對于數據分析師來說,數據獲取通常有兩種方式,一種是直接從系統本地獲取數據,另一種是爬取網頁上的數據,爬蟲從網頁爬取數據需要幾步?總結下來,Python爬取網頁數據需要發起請求、獲取響應內容、解析數據、保存數據共計4步。
本文使用Python爬取去哪兒網景點評論數據共計100條數據,數據爬取后使用Tableau Public軟件進行可視化分析,從數據獲取,到數據清洗,最后數據可視化進行全流程數據分析,下面一起來學習。
示例工具:anconda3.7
本文講解內容:數據獲取、數據可視化
適用范圍:網頁數據獲取及評論分析
網頁數據爬取
Python爬取網頁數據需要發起請求、獲取響應內容、解析數據、保存數據共計4步,懂的數據爬取的原理后,進行數據爬取。
1、發起請求
以去哪兒旅行網站為例,爬取網頁數據,首先發送請求。
import requests u='https://travel.qunar.com/p-cs300100-xian-jingdian'#爬取網址 response=requests.get(u) print('狀態碼:{}'.format(response.status_code)) if response.status_code != 200:pass else:print("服務器連接正常")?這里返回狀態碼為200,說明服務器連接正常,可以進行數據爬取。
2、獲取響應內容
服務器連接正常后,直接打印返回內容,這里返回整個網頁html。
print(response.text)3、解析數據
網頁結構由復雜的html語言構成,這里借助BeautifulSoup庫進行解析。
from bs4 import BeautifulSoupri = requests.get(url=u) soupi=BeautifulSoup(ri.text,'lxml')#解析網址 ul=soupi.find('ul',class_='list_item clrfix') lis = ul.find_all('li') lis對于特定的標簽進行定位,輸出text。
print(soupi.h1.text)#標簽定位,輸出text lis=ul.find_all('li') print(lis[0].text)建立一個字典,解析目標標簽內容。
li1=lis[0] dic={} dic['景點名稱']=li1.find('span',class_="cn_tit").text dic['攻略提到數量']=li1.find('div',class_="strategy_sum").text dic['評論數量']=li1.find('div',class_="comment_sum").text dic['lng']=li['data-lng'] dic['lat']=li['data-lat'] dic使用for循環解析標簽內容。
import requests from bs4 import BeautifulSoup u1='https://travel.qunar.com/p-cs300100-xian-jingdian' ri=requests.get(url= u1)soupi=BeautifulSoup(ri.text,'lxml')#解析網址 ul=soupi.find('ul',class_='list_item clrfix') lis=ul.find_all('li') for li in lis:dic={}dic['景點名稱']=li.find('span',class_="cn_tit").textdic['攻略提到數量']=li.find('div',class_="strategy_sum").textdic['評論數量']=li.find('div',class_="comment_sum").textdic['lng']=li['data-lng']dic['lat']=li['data-lat'] print(dic)根據翻頁規律設置翻頁數,這里設置一個列表,用來循環爬取前十頁數據。
#根據翻頁規律,設置翻頁數 urllst=[] for i in range(11):urllst.append('https://travel.qunar.com/p-cs300100-xian-jingdian'+str('-1-')+str(i))urllst=urllst[2:11]urllst.append('https://travel.qunar.com/p-cs300100-xian-jingdian') urllst4、保存數據
新建一個空的數據框,用于保存數據。
import pandas as pd dic = pd.DataFrame(columns=["景點名稱", "攻略提到數量", "評論數量", "lng", "lat"]) dic在空的數據框中保存第一條數據,并且使用for循環,依次爬取其余頁面的數據。
n=0 dic.loc[n, '景點名稱'] = li.find('span', class_="cn_tit").text dic.loc[n, '攻略提到數量'] = li.find('div', class_="strategy_sum").text dic.loc[n, '評論數量'] = li.find('div', class_="comment_sum").text dic.loc[n, 'lng'] = li['data-lng'] dic.loc[n, 'lat'] = li['data-lat'] dic最后
如果對Python感興趣的話,可以試試我的學習方法以及相關的學習資料
Python所有方向的學習路線
Python所有方向的技術點做的整理,形成各個領域的知識點匯總,它的用處就在于,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。
二、Python必備開發工具
?
三、精品Python學習書籍
當我學到一定基礎,有自己的理解能力的時候,會去閱讀一些前輩整理的書籍或者手寫的筆記資料,這些筆記詳細記載了他們對一些技術點的理解,這些理解是比較獨到,可以學到不一樣的思路。
四、Python視頻合集
觀看零基礎學習視頻,看視頻學習是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎到深入,還是很容易入門的。
五、實戰案例
光學理論是沒用的,要學會跟著一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。
六、Python練習題
檢查學習結果。
七、面試資料
我們學習Python必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有阿里大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
大家拿到腦圖后,根據腦圖對應的學習路線,做好學習計劃制定。根據學習計劃的路線來逐步學習,正常情況下2個月以內,再結合文章中資料,就能夠很好地掌握Python并實現一些實踐功能。
?
總結
以上是生活随笔為你收集整理的Python数据分析:爬虫从网页爬取数据需要几步?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PM项目管理职责
- 下一篇: excel表格损坏修复要注意事项