Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)
有人给我吹牛逼,说汽车之家反爬很厉害,我不服气,所以就爬取了一下这个网址。
本片博客的目的是重点的分析定向爬虫的过程,希望读者能学会爬虫的分析流程。
一:爬虫的目标:
打开汽车之家的链接:https://www.autohome.com.cn/beijing/,出现如下页面

我们的目标是

点击找车,然后出现如下图

我们要把图中的信息抓取到
二:实现过程
我们选择 宝马5系 然后点击找车
注意宝马5系的 data-value 是 65

如下图

因为这个网页需要做翻页,我们就点击翻页。然后抓取到了一个url链接的请求方式。

可以判断出来的是 PageIndex 是页面,表示第几页。SeriesId是车系
直接上代码
#-*-coding:utf-8-*-
from common.contest import * def spider():
url = 'https://dealer.autohome.com.cn/frame/Car/CarDealerList'
headers = { "Host":"dealer.autohome.com.cn",
"Connection":"keep-alive",
"Accept":"*/*",
"X-Requested-With":"XMLHttpRequest",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36",
"Referer":"https://dealer.autohome.com.cn/frame/car/GetDealerByCar?SeriesId=65&ProvinceId=110000&CityId=110100",
"Accept-Encoding":"gzip, deflate, br",
"Accept-Language":"zh-CN,zh;q=0.9",
"Cookie":"__ah_uuid=B5EFCA0A-C638-43C8-8D4F-1CEB07A1E9BD; fvlid=15275822890176s3cfWZKlL; sessionip=119.61.28.90; area=110199;
ahpau=1; sessionid=FCACBCDA-A005-4F82-8E88-C27091B3A127%7C%7C2018-05-29+16%3A24%3A54.092%7C%7Cwww.baidu.com;
sessionvid=6B39A12E-5580-4522-9800-316DA038715A; sessionuid=FCACBCDA-A005-4F82-8E88-C27091B3A127%7C%7C2018-05-29+16%3A24%3A54.092%7C%7Cwww.baidu.com;
papopclub=0AFEB345FB77A406EFE118CB317CE733; pepopclub=7C16F37F6D8E038ABDFD155664996DA2;
historybbsName4=c-3170%7C%E5%A5%A5%E8%BF%AAA3; pvidlist=7ab2cb54-f4a0-420c-be56-dff130b41d846:149875:216460:0:1:1036776;
mpvareaid=2018278; mallsfvi=15275826304503kGG3Qam%7Cwww.autohome.com.cn%7C2018278; mallslvi=2018278%7Cwww.autohome.com.cn%7C15275826304503kGG3Qam;
Hm_lvt_9924a05a5a75caf05dbbfb51af638b07=1527582690; ahsids=65_2951_3170_4851_59; ahpvno=21;
pvidchain=101061,101061,101061,2018278,3311273,3311273,3311273,3311273,3311273,3311273;
ref=www.baidu.com%7C0%7C0%7C0%7C2018-05-29+17%3A09%3A59.013%7C2018-05-29+16%3A24%3A54.092; Hm_lpvt_9924a05a5a75caf05dbbfb51af638b07=1527585001", }
for page in range(1,11): data = { "BrandId":"",
"FactoryId":"",
"SeriesId":"",
"ProvinceId":"",
"CityId":"",
"CountyId":"",
"PageIndex":str(page),
"DealerKind":"", } try:
result = session.get(url=url,headers=headers,verify=False,params=data).text
except:
result = session.get(url=url,headers=headers,verify=False,params=data).text print result spider()

在这里不做解析。
三:总结
有人要问了SeriesId = 65怎么处理,这个很简单,把汽车之家所有的车系都封装成一个字典格式数据就可以啦,CityId,ProvinceId 也是同理。
爬虫的难点不是网站的一些反爬措施,而是一个请求有几十个url链接,能准确的找到自己需要的链接,有用的链接才是最重要的。
Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)的更多相关文章
- Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取
很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...
- Python爬虫实例:爬取猫眼电影——破解字体反爬
字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- Python爬虫教程-17-ajax爬取实例(豆瓣电影)
Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- python爬虫-基础入门-爬取整个网站《1》
python爬虫-基础入门-爬取整个网站<1> 描述: 使用环境:python2.7.15 ,开发工具:pycharm,现爬取一个网站页面(http://www.baidu.com)所有数 ...
- Python爬虫实战之爬取百度贴吧帖子
大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的任意帖子进行抓取 指定是否只抓取楼主发帖 ...
- python爬虫-基础入门-爬取整个网站《3》
python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...
- python爬虫-基础入门-爬取整个网站《2》
python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...
- Python 爬虫入门之爬取妹子图
Python 爬虫入门之爬取妹子图 来源:李英杰 链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...
随机推荐
- C#或Python中正则表达式元字符含意
一.列表 元字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 ' ...
- 苹果电脑Macbook怎么编辑hosts文件的方法
苹果电脑Macbook怎么编辑hosts文件的方法 https://jingyan.baidu.com/article/fec4bce2690417f2618d8b07.html 文章 ...
- Mybatis-Generator自动生成XML文件以及接口和实体类
整合了MySQL和Oracle配置文件生成方法 这个是整个文件夹的下载地址:http://www.codepeople.cn/download 主要给大家介绍一下generatorConfig.xml ...
- lxml包引入错误
在使用第三方包lxml引入etree模块时报错: >>> from lxml import etree Traceback (most recent call last): File ...
- Java RSA (SHA1withRSA)签名和验签
static { try { SIGNATURE = Signature.getInstance("SHA1withRSA", "BC"); } catch ( ...
- Linux Shell 下载网站指定文件
Shell脚本,用来从网站下载指定文件名的文件.先判断本地这个文件是否存在,如果存在则忽略,不存在则从远程服务器上下载,下载成功后本地的批次号累加1,然后使用新的批次号继续下载新文件. #!/bin/ ...
- Double-check idiom for lazy initialization of instance fields
- Azure编程笔记(3):用Fiddler调试Azure的应用程序
内容提要 Azure的服务是通过RESTfulAPI提供的. 尽管Azure针对非常多编程语言都提供了SDK.但这些SDK也仅仅是RESTfulAPI的一层封装. 在调用SDK或者RESTful ...
- Mongodb对数据库(DB)的常用操作
1.查看所有库 show dbs 2.切换数据库/新建数据库 use mydb 3.查看当前库 db 需要注意的是:<use 新库>这个命令并不会马上建立真正的实体库,只有往里面插入数据的 ...
- python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用) import HTMLPar ...