爬蟲(5)爬取多頁資料

2021-10-22 07:37:15 字數 1203 閱讀 2958

我們點開其他年份的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...