1. 程式人生 > 其它 >網路爬蟲學習筆記

網路爬蟲學習筆記

常用寫法

import requests
from lxml import html
etree=html.etree
import pandas as pd
網址 = "https://www.jkl.com.cn/cn/shopLis.aspx?id=865"
UA偽裝 = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.9231 SLBChan/8'}

network->name->headers

爬取京客隆網站店鋪資訊

import requests
from lxml import html
etree=html.etree
import pandas as pd
網址 = "https://www.jkl.com.cn/cn/shop.aspx"
UA偽裝 = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.9231 SLBChan/8'}
#1.拿取每個域區網址
響應資料=requests.get(url=網址,headers=UA偽裝).text
解析 = etree.HTML(響應資料)
城區 = 解析.xpath('//div[@class="infoLis"]//@href')#‘/’表示一個層級;'//'表示多個層級
for 區 in 城區:
    網址2 = 'http://www.jkl.com.cn/cn/' + 區
    響應資料1 = requests.get(url=網址2,headers=UA偽裝).text
    解析1 = etree.HTML(響應資料1)
    店鋪名稱 = 解析1.xpath('//span[@class="con01"]/text()')#
    詳細地址 = 解析1.xpath('//span[@class="con02"]/text()')#
    電話號碼 = 解析1.xpath('//span[@class="con03"]/text()')#
    營業時間 = 解析1.xpath('//span[@class="con04"]/text()')#都是列表方式儲存
    列表 = []
    for 店名 in 店鋪名稱:
        新資料 = 店名.strip()
        列表.append(新資料)
    資料 = pd.DataFrame({'店名':列表,'地址':詳細地址,'電話':電話號碼,'時間':營業時間})#字典
    資料.to_csv('D:\One Driver\OneDrive\桌面\爬蟲/店鋪資訊1.csv',index=False,header=0,mode = 'a',encoding='ANSI')

處理翻頁URL不變的情況

import requests
from lxml import html
etree=html.etree
import pandas as pd
網址 = "https://www.jkl.com.cn/cn/shopLis.aspx?id=865"
UA偽裝 = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.9231 SLBChan/8'}
for 頁碼 in range(1,4):
    換頁 = {
        '__EVENTTARGET': 'AspNetPager1',
        '__EVENTARGUMENT': 頁碼
    }
    響應資料1 = requests.post(url = 網址,headers = UA偽裝,data=換頁).text
    解析1 = etree.HTML(響應資料1)
    店鋪名稱 = 解析1.xpath('//span[@class="con01"]/text()')
    詳細地址 = 解析1.xpath('//span[@class="con02"]/text()')
    電話號碼 = 解析1.xpath('//span[@class="con03"]/text()')
    營業時間 = 解析1.xpath('//span[@class="con04"]/text()')
    列表 = []
    for 店名 in 店鋪名稱:
        新資料 = 店名.strip()
        列表.append(新資料)
    資料 = pd.DataFrame({'店名':列表,'地址':詳細地址,'號碼':電話號碼,'時間':營業時間})
    資料.to_csv('D:\One Driver\OneDrive\桌面\爬蟲/多頁店鋪資訊.csv',index=False,header=0,mode='a',encoding='ANSI')