快一年没更新博客了,现在总结一下这大半年来研究、学习的知识,博客陆续更新中。。。
这个爬虫项目是去年4、5月份做的,主要技术是BeautifulSoup、select、requests、MongoDB、highchart
首先,我们登陆赶集网可以看到二手商品信息的首页,即爬虫的起始url是:http://sh.ganji.com/wu/,分析网页结构可以看到二手商品信息分类中有:手机、手机配件、手机号码、笔记本电脑、台式机等20多个商品分类子频道,分别打开每个子频道的url,可以看到对应的二手商品列表,每个二手商品列表中的url对应一个详细页面,我们要获取的就是每个详细页面上的信息。
首先,我们定义 headers 部分,headers 包含 User-Agent、Cookie、Referer等信息,这是为了伪装成浏览器的形式,以应对反爬虫措施。
requests.get解析url:
wb_data = requests.get(url, headers=headers)
BeautifulSoup的lxml解析文本:
soup = BeautifulSoup(wb_data.text, 'lxml')
关于BeautifulSoup中的各种html解析器,我做了一个小的研究,html.parser:这是python自带的,速度上当然是没问题的,但是兼容性不好, python2.7.3以前的版本不兼容;lxml:解析速度很快、兼容性好,但是正因为其解析速度快,有时会出现解析不到数据的情况;html5lib:兼容性非常好,解析成功率非常高(有时用lxml解析不到时,用html5lib却能解析到),但是速度非常慢;综合这三种html解析器,我觉得lxml是最为折中的。
select选择器定位文本:
links = soup.select('div.main-pop dl dt a')
获取详细信息:
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26