成功利用python爬取網頁html表格,鏈接不變,頁碼變,nice

爬蟲是一件很有趣的事情,就像黑客一樣,和服務器對抗,服務器維護代碼防止爬蟲,我們通過各種bug解決爬蟲困難,真實有趣!今天給大家帶來一串代碼,針對網頁中的表格爬取,表格頁碼變化,而鏈接url不變的情況1

成功利用python爬取網頁html表格,鏈接不變,頁碼變,nice

首先給出爬取的原文鏈接:
https://d.qianzhan.com/yuanqu/

接下來一步一步解釋一下代碼:

#導入所需庫文件
import requests
import pandas as pd
import csv

代碼核心

上面三個庫文件是本次爬蟲所需的主要庫,requests庫向網站發送請求,請求成功則返回響應狀態碼為200,否則為400或者404,pandas庫可以用來直接抓取表格數據,csv庫用來將文件保存在本地csv文件內。

#這裡爬取的表格為廣東省的數據表格
areas = ['廣東省']
#寫入鏈接url
urls = ['https://d.qianzhan.com/yuanqu/?p={}'.format(str)for str in areas]
x = 0
for url in urls:
 #打開csv文件,在第一行寫入標題
 with open('前瞻.csv', 'a', newline='', encoding='utf-8-sig') as csvfile:
 w = csv.writer(csvfile)
 # 寫入標題或稱之為變量
 w.writerow(['序號', '園區名稱', '省份', '城市', '佔地面積', '企業數', '詳情'])
 # 對錶格的全部頁數進行抓取
 for i in range(1, 33): # 跳頁
 # 在網頁源代碼找到頁碼的屬性,這裡頁碼在屬性page上
 data = {
 'page': i
 }
 # 對網站發送請求,獲得響應
 s = requests.session()
 d = s.get(url, params=data)
 # 抓取html表格
 tb = pd.read_html(d.text)[1] 
 # 將抓取來的表格填入csv文件內
 tb.to_csv(r'前瞻.csv', mode='a', encoding='utf_8_sig', header=0, index=0)
 # 每抓取玩一個省份,打印出抓取結果,給用戶更好體驗
 print(areas[x], "已經抓取完成!請到本地文檔中查看抓取結果!")
 x = x+1
# 全部抓取完成,則打印'全部抓取完畢!'

print('全部抓取完畢!')
成功利用python爬取網頁html表格,鏈接不變,頁碼變,nice

結果分析

最終成功抓取到所有表格的內容,並存入了csv文件內,大家有問題可以下方留言討論!


分享到:


相關文章: