python爬虫二级页面爬取
文章目录
python爬虫二级页面爬取 前言 一、流程 二、操作部分 1.请求头设置 2.第一级页面爬取 3.二级页面内容爬取 4.运行结果前言
推荐一个爬虫的小玩意
叫 xpath helper
是一个扩展程序
打开可以直接定位你想要地方的位置
crx文件我没有了,百度总会找到的
效果:
python爬虫爬取二级子页面,是在第一级页面爬取到第二级页面的链接,通过链接去访问二级页面进行爬取。
一、流程
①爬虫的第一个步骤就是对起始 URL 发送请求,以获取其返回的响应;
②返回的网页数据,我们需要进行解析,提取出二级页面链接;
③将二级页面链接返回url队列再一次重复①
④解析二级页面,定位所需内容
⑤保持数据,一般为csv、excle、josn
二、操作部分
1.请求头设置
emm
请求头一定要设置好
现在加user-agent不一定能解析页面获取内容,这个时候我们需要加一个cookie。
你可以这样理解cookie,你找了个吃饭的地,吃完你走了,第二次你又去,就像给他打声招呼,嗨,我又来了,他一看是熟人,直接就让你进了,如此,就不用一直被检测。
果然脑子里只能想到干饭
代码:
def head_x(): #设置请求头
header = {
'User-Agent': 'xxx',
'Cookie': 'xxx'
}
return header
2.第一级页面爬取
标红的就是车的链接
import requests
from lxml import etree
import numpy as np
import time
import pandas as pd
import re
def html_link(): #得到二级页面链接
list = []
for i in range(1,13):
print('爬取第{}页'.format(i))
url = 'https://www.maodou.com/car-list/all/pg{}?keyword='.format(i)
head = head_x()
rq = requests.get(url,headers=head)
html = etree.HTML(rq.content)
rqq = html.xpath('//div[@class="list-wrap clearfix"]/a/@href')
list.extend(rqq)
print(rqq)
time.sleep(np.random.randint(1,3))
return list
这个地方主要目标是爬取第二页面的链接
当然如果提取,第一页面的内容也是可以的
3.二级页面内容爬取
我就爬了这几个,也可以爬更多
def second_page(): #二级子页面
list_link = html_link()
list_1 = []
for i in list_link:
item = {}
rqqq = requests.get(i,headers=head_x())
time.sleep(np.random.randint(1,3))
html = etree.HTML(rqqq.content)
item['name'] = re.sub("\s", "", ",".join(html.xpath('//*[@id="banner"]/div[@class="banner clearfix"]/div[@class="banner-right"]/h2/text()')))
item['price'] = re.sub("\s", "", ",".join(html.xpath('//*[@id="banner"]/div[@class="banner clearfix"]/div[@class="banner-right"]/p/text()')))
item['first_pay'] = re.sub("\s", "", ",".join(html.xpath('//div[@class="sy-yf"]/div[@class="sy"]/p[@class="sy-num"]/text()')))
list_1.append(item)
print(item)
return list_1
def save_data():
data = second_page()
data = pd.DataFrame(data)
data.to_csv('二手车数据.csv',index=False)
return data
if __name__ == '__main__':
used_car = save_data()
运行
4.运行结果
差不多就这样
差不多就这样了
干饭干饭!!!