常用写法
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')