代碼效果
獲取京客隆網(wǎng)站店鋪信息頁(yè)面下,北京多個(gè)城區(qū)每一頁(yè)的分頁(yè)頁(yè)數(shù)
實(shí)戰(zhàn)代碼
import requests
from lxml import etree
import re
UA偽裝 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
網(wǎng)址 = 'http://www.jkl.com.cn/shopLis.aspx?TypeId=10044'
proxies={
'http':'http://XXXXXX@pXXXXX',
'https':'XXXXX@XXXXXX'
}
響應(yīng)數(shù)據(jù) = requests.get(url=網(wǎng)址, headers=UA偽裝,proxies=proxies,verify=False).text
解析 = etree.HTML(響應(yīng)數(shù)據(jù))
#通過(guò)xpath解析,獲取即將組成字典數(shù)據(jù)的鍵與值
城區(qū)名稱 = 解析.xpath('//div[@class="infoLis"]//a/text()')
城區(qū)鏈接 = 解析.xpath('//div[@class="infoLis"]//@href')
#目測(cè)數(shù)出一共要爬取的專欄數(shù)量,從1開(kāi)始到12
for i in range(1,13):
# print(城區(qū)名稱[i-1].strip(),'http://www.jkl.com.cn/cn/' + 城區(qū)鏈接[i-1])
#將城區(qū)列表中的城區(qū)名稱逐個(gè)賦值給名稱
名稱 = 城區(qū)名稱[i-1].strip()
#http://www.jkl.com.cn/shopLis.aspx?TypeId=10045
鏈接 = 'http://www.jkl.com.cn/' + 城區(qū)鏈接[i-1]
#print(鏈接)
響應(yīng)數(shù)據(jù)1 = requests.get(url=鏈接, headers=UA偽裝,proxies=proxies,verify=False).text
解析 = etree.HTML(響應(yīng)數(shù)據(jù)1)
尾頁(yè) = 解析.xpath('//a[text()="尾頁(yè)"]/@href')
#print(尾頁(yè))
#用尾頁(yè)的鏈接獲取每個(gè)專欄的總頁(yè)數(shù)。
if 尾頁(yè) != []:
正則 = re.search("\d{1}", 尾頁(yè)[0]) # 正則筆記1.3
頁(yè)數(shù) = 正則.group(0) # group()或group(0)匹配正則表達(dá)式,group(1)匹配第一個(gè)括號(hào),正則筆記2.9
# print(頁(yè)數(shù))
else:
頁(yè)數(shù) = 1
print(f'{名稱},{鏈接},總頁(yè)數(shù){頁(yè)數(shù)}')