一個簡單的案例,三個步驟就能讓你輕鬆掌握Python爬蟲

前言

須要Python源碼、PDF、視頻資料能夠點擊下方連接獲取html

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef複製代碼

運行環境python

  • python3.7正則表達式

  • Windowschrome

  • vscode瀏覽器

運行依賴包bash

  • requests ( pip install requests 便可安裝)工具

  • reui

爬蟲能夠簡單的分爲:url

  • 獲取數據spa

  • 分析數據

  • 存儲數據

下載數據

簡單來講一個網頁是由一個html文件解析構成,咱們須要獲取這個文本內容。

每一個瀏覽器均可以經過開發者工具獲取到文本內容,以chrome爲例,打開網頁後,右鍵->檢查。 在這裏插入圖片描述 右邊的 Elements 就是咱們要下載的數據。

讓咱們看看 requests 是如何獲取這個數據的。

url='http://lamyoung.com/';
html=requests.get(url);
if html.status_code == 200:
    html_bytes=html.content;
    html_str=html_bytes.decode();複製代碼

分析數據

此次咱們用正則表達式去解析源數據,截取到咱們須要。 在這裏插入圖片描述 如今咱們的目標是抓取博客的文章標題和連接,咱們能夠經過剛纔的開發者工具獲取文章標題和連接的特徵。 在這裏插入圖片描述 使用正則表達式中的 findall 把全部內容找出來,並保存在字符串中。

write_content = ''
all_items = re.findall(regex,html_str);
for item in all_items:
  write_content=f'{write_content}\n{item[1]}\nhttp://lamyoung.com{item[0]}\n'複製代碼

咱們能夠點幾個下一頁,很容易發現其中的規律。

爲此,咱們加個循環判斷就能夠啦。

index=1
while True:
  page_url = '';
  if index>1:
    page_url=f'page{index}/'
  url=f'http://lamyoung.com/{page_url}';
  html=requests.get(url);
  if html.status_code != 200:
    print(html);
    break;複製代碼

在判斷狀態碼爲200時,退出循環。

存儲數據

此次咱們就用文本存儲來結束咱們的教程吧。

with open('lamyoung_title_out.txt','w',encoding='utf-8') as f:
  f.write(write_content)複製代碼

在這裏插入圖片描述

.

相關文章
相關標籤/搜索