您好,登錄后才能下訂單哦!
今天小編給大家分享一下如何用python爬數據的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
小編先放上一個示例代碼(以當當好評榜 TOP500 為例),以下介紹基于該代碼進行介紹。
import requests # 引入request庫進行頁面請求
from requests.exceptions import RequestException # 引入RequestException來捕獲request可能出現的異常
import re # 引入re庫來進行正則匹配
import json # 引入json 來進行json格式轉化
def get(url): # 將請求方法封裝,方便使用try語句捕捉異常
try:
response = requests.get(url) # 使用request的get方法獲取響應流
if response.status_code == 200: # 處理響應流,如果不是200響應,則返回None
return response.text # 將響應流以文本方式返回
return None
except RequestException:
return None
def parse(text): # 將正則匹配方法封裝,使代碼模塊化
pattern = re.compile('<li>.*?list_num.*?>(.*?)</div>.*?pic.*?src="(.*?)".*?/></a>.*?name"><a.*?title="('
'.*?)">.*?tuijian">(.*?)</span>.*?publisher_info.*?title="(.*?)".*?biaosheng.*?<span>('
'.*?)</span>.*?</li>', re.S) # 設定正則表達式匹配規則
items = re.findall(pattern, text) # 使用正則匹配對傳入的text文本進行正則匹配,并將匹配成功的結果保存在items
return items # 將匹配的結果返回
if __name__ == "__main__":
target_url = "http://bang.dangdang.com/books/fivestars/" # 目標爬取的頁面url
html = get(target_url) # 使用封裝好的get方法將整個目標HTML頁面爬取下來
for item in parse(html): # 使用封裝好的正則匹配方法對目標HTML進行正則匹配,然后用一個循環將結果進行處理
print(item)
# 接下來是將結果寫入txt文件的操作
with open('book.txt', 'a', encoding='UTF-8') as f:
f.write(json.dumps(item, ensure_ascii=False) + '\n') # 使用json庫的dumps方法將列表對象轉變成json對象(字符串),然后寫入文本
f.close()
爬蟲開發第一步:網頁分析
爬蟲開發的第一步,是對目標網頁進行分析,首先要知道你需要的目標數據在哪里,這里使用開發者工具查看整個頁面結構,發現目標數據在一個 <li>
元素中,所以開發思路是,將這個頁面的數據獲取下來,然后獲取數據中的 <li>
元素(里面的有用的數據)。
爬蟲開發第二步,數據爬取
經過第一步的分析,我們已經大致有了爬蟲的思路了,所以現在要做的,就是把這個頁面爬取下來。這時候 request 庫出場了。使用 request 的 get()
方法,可以將目標頁面的 html 爬下來。得到了目標頁面的 html(代碼中將其存儲在 html 字符串中)。就可以進行接下來的操作了。
爬蟲開發第三步,數據處理
使用正則表達式,匹配代碼中的目標數據(也就是之前分析的li元素里的有用的數據)。并將其放進一個 items
列表中。完成到這一步,數據的爬取分析也就基本結束了。只要將爬取的結果進行保存就可以了。
爬蟲開發第四步,數據保存
小編這里使用python自帶的文件讀寫函數,將數據以json的格式保存在一個叫 book.txt
的文件中。
以上就是“如何用python爬數據”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。