我們點開其他年份的gdp資料時,會發現**的變化只有後面的數字變成了相應的年份,所以我們可以通過for迴圈來實現對多頁資料的爬取
from selenium import webdriver
from bs4 import beautifulsoup
import csv
driver=webdriver.chrome(
)out=
open
('d:/gdp.csv'
,'w'
,newline='')
csv_write=csv.writer(out,dialect=
'excel'
)for year in
range
(1960
,2020):
url=
""%year
xpath=
"/html/body/div[2]/div[1]/div[5]/div[1]/div/div/div/table"
driver.get(url)
tablel=driver.find_element_by_xpath(xpath)
.get_attribute(
'innerhtml'
) soup=beautifulsoup(tablel,
"html.parser"
) table=soup.find_all(
'tr'
)for row in table:
cols=
[col.text for col in row.find_all(
'td')]
iflen
(cols)==0
ornot cols[0]
.isdigit():
continue
csv_write.writerow(cols)
out.close(
)driver.close(
)
這裡要先注意,開啟檔案只執行一遍,也就是要放到for迴圈外面,不然新資料會覆蓋掉原資料
年份是從2023年到2023年,所以range引數到2020
同時url也需要更改,改為
url=
""%year
為了不混淆年份對應的gdp,可以在最後面加上乙個年份
自此,爬取gdp資料結束
爬蟲 爬取多頁資料
最近在寫乙個簡單的爬蟲,最開始使用的是bs4工具,但是後面接觸到xpath,覺得這個比較適合我哈哈.然後用xpath又重新寫了一遍,其中讓我困擾的還是多頁爬取,ip老是被封.網上找了很多方法,大多數都是說要建立乙個ip池,迴圈爬取多頁資料的時候,就換ip這樣就不會被封了.然後 ip有兩種,乙個要付費...
Python Scrapy多頁資料爬取實現過程解析
1.先指定通用模板 url 程式設計客棧 d 通用的url模板 pagenum 1 2.對parse方法遞迴處理 parse第一次呼叫表示的是用來解析第一頁對應頁面中的資料 對後面的頁碼的資料要進行手動傳送 if self.pagenum 5 self.pagenum 1 new url forma...
爬取網頁資料 插敘 爬取網頁資料,給寶寶取個好名字
前言 應用例項 匯入模組import requestsfrom bs4 import beautifulsoup 填寫頭請求,包括爬取網頁 headers result 暫定爬取9頁名字for i in range 1,10 url str i html r requests.get url,hea...