看完这28个python爬虫项目,你离爬虫高手就不远了,不够来找我( 二 )


(13)机票爬虫(去哪儿和携程网)
https://github.com/hanc00l/wooyun_public
Findtrip是一个基于Scrapy的机票爬虫,目前整合了国内两大机票网站(去哪儿 + 携程) 。
(14)163spider
https://github.com/leyle/163spider
基于requests、MySQLdb、torndb的网易客户端内容爬虫 。
(15)doubanspiders
https://github.com/sdfzy/doubanspiders
豆瓣电影、书籍、小组、相册、东西等爬虫集 writen by Python
(16) QQ空间爬虫
https://github.com/LiuXingMing/QQSpider
包括日志、说说、个人信息等,一天可抓取 400 万条数据 。
(17)baidu-music-spider
https://github.com/Shu-Ji/baidu-music-spider
百度mp3全站爬虫,使用redis支持断点续传 。
(18) 淘宝和天猫的爬虫
https://github.com/pakoo/tbcrawler
根据搜索关键词,物品id来抓取页面的信息,数据存储在mongodb 。
(19)stockholm
https://github.com/benitoro/stockholm
一个股票数据(沪深)爬虫和选股策略测试框架 。根据选定的日期范围抓取所有沪深两市股票的行情数据 。支持使用表达式定义选股策略 。支持多线程处理 。保存数据到JSON文件、CSV文件 。
(20)BaiduyunSpider
https://github.com/k1995/BaiduyunSpider
百度云盘爬虫 。
(21)社交数据爬虫
https://github.com/Qutan/Spider
支持微博,知乎,豆瓣 。
(22)proxy pool
https://github.com/Qutan/Spider
Python爬虫代理IP池(proxy pool) 。
(23)网易云音乐
https://github.com/RitterHou/music-163
爬取网易云音乐所有歌曲的评论 。
(24)CnblogsSpider
https://github.com/jackgitgz/CnblogsSpider
cnblogs列表页爬虫 。
(25)spider_smooc
https://github.com/jackgitgz/CnblogsSpider
爬取慕课网视频 。
(26)knowsecSpider
https://github.com/littlethunder/knowsecSpider2
知道创宇爬虫题目 。
(27)SinaSpider
https://github.com/szcf-weiya/SinaSpider
动态IP解决新浪的反爬虫机制,快速抓取内容 。
(28)csdn-spider
https://github.com/Kevinsss/csdn-spider
爬取CSDN上的博客文章 。
一、爬虫是什么?
如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序 。
从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的html代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用;
二、爬虫的基本流程
用户获取网络数据的方式:
方式1:浏览器提交请求--->下载网页代码--->解析成页面
方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中
爬虫要做的就是方式2 。

看完这28个python爬虫项目,你离爬虫高手就不远了,不够来找我

文章插图
1、发起请求
使用http库向目标站点发起请求,即发送一个Request
Request包含:请求头、请求体等
Request模块缺陷:不能执行JS 和css 代码
2、获取相应内容
如果服务器能正常响应,则会得到一个Response
Response包含:html,json,图片,视频等
3、解析内容
解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等
解析json数据:json模块
解析二进制数据:以wb的方式写入文件
4、保存数据
数据库(MySQL,Mongdb、Redis)
文件
三、http协议 请求与响应
看完这28个python爬虫项目,你离爬虫高手就不远了,不够来找我

文章插图
Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)
Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)
ps:浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据 。
四、 request
1、请求方式:
常见的请求方式:GET / POST
2、请求的URL
url全球统一资源定位符,用来定义互联网上一个唯一的资源 例如:一张图片、一个文件、一段视频都可以用url唯一确定
url编码
https://www.baidu.com/s?wd=图片
图片会被编码(看示例代码)
网页的加载过程是:
加载一个网页,通常都是先加载document文档,


推荐阅读