值!一篇博客,容纳11个Python爬虫案例总结,《爬虫100例》专栏第6篇复盘文章
Posted 梦想橡皮擦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了值!一篇博客,容纳11个Python爬虫案例总结,《爬虫100例》专栏第6篇复盘文章相关的知识,希望对你有一定的参考价值。
文章目录
案例 29:手机 APP 数据采集
经测试,网站还在,但是不能爬取那么多页的数据了,只剩下 1000 页数据可以采集了。
而且网站页码还非常有趣的,更换成了如下顺序
https://www.liqucn.com/rj/new/?page=15405
https://www.liqucn.com/rj/new/?page=15404
……
https://www.liqucn.com/rj/new/?page=14406
案例 30:高考派大学数据采集
这个网站已经不见了,打开之后显示如下内容:网站访问量过大,系统正在升级,给您带来的不便,敬请谅解。
,这难道是被爬虫采集者干的?
既然高考数据已经没办法查询到了,那切换为 【建筑档案】网站(https://www.jzda001.com/)数据抓取吧。
技术点学习原文即可,代码只修改了 start_requests
函数与 parse
函数,同步修改 items.py
文件。
# 需要重写 start_requests() 方法
def start_requests(self):
# 只获取 20 页数据
for page in range(1, 5):
form_data = {
"type": "1",
"limit": "17",
"pageNo": str(page)
}
request = FormRequest(
self.start_url, headers=self.headers, formdata=form_data, callback=self.parse)
yield request
def parse(self, response):
# print(response.body)
# print(response.url)
# print(response.body_as_unicode())
data = json.loads(response.body_as_unicode())
data = data["rows"] # 获取数据
print(data)
for item in data:
school = MyspiderItem()
school["title"] = item["title"]
school["userName"] = item["userName"]
school["createTime"] = item["createTime"]
# 将获取的数据交给pipelines,pipelines在settings.py中定义
yield school
完整代码下载地址:案例 30
案例 31:36 氪(36kr)数据抓取 scrapy
本案例实测发现 36 Kr 网站已经更新,数据流加载方式已经进行了改变,本文暂不更新该加载方式,重新为大家新增加一个站点,CSDN 粉丝列表数据采集。当然在更新本文时,《爬虫 120 例》已经更新了多线程版本,可查看本链接进行学习。
复盘文章就不再抓取其它博客了,以自己的博客为例。
https://blog.csdn.net/community/home-api/v1/get-fans-list?page=3&size=20&noMore=false&blogUsername=hihell
其中爬虫部分核心代码如下所示:
import scrapy
from scrapy import Request
import json
from items import CsdnItem
class CSpider(scrapy.Spider):
name = 'C'
allowed_domains = ['blog.csdn.net']
start_urls = ['https://blog.csdn.net/community/home-api/v1/get-fans-list?page=1&size=20&noMore=false&blogUsername=hihell']
def parse(self, response):
# 总页码临时设置为 10
for page in range(2,11):
print("正在爬取{}页".format(page),end="")
yield Request("https://blog.csdn.net/community/home-api/v1/get-fans-list?page={}&size=20&noMore=false&blogUsername=hihell".format(str(page)), callback=self.parse_item)
def parse_item(self,response):
data = json.loads(response.body_as_unicode())
print("*"*100)
item = CsdnItem()
for one_item in data["data"]["list"]:
item["username"] = one_item["username"]
item["blogUrl"] = one_item["blogUrl"]
yield item
完整代码下载地址:案例 31,代码中缺少数据存储部分,直接参考原博客学习即可。
案例 32:B 站博人传评论数据抓取 scrapy
还是博人传比较燃,该案例间隔许久,完全没有任何问题,接口可用,代码可用,妥妥的继续学习。
以后可以多安排一下 B 站相关内容的采集了,比较稳定。
案例 33:《海王》评论数据抓取 scrapy
本案例为猫眼评论数据采集,在测试过程中发现了滑动验证码的出现,其余内容无变化,学习过程中如发现此问题,建议切换到其它评论类 API 数据,操作流程与编码规则基本一致,继续学习即可。
博客地址:https://blog.csdn.net/hihell/article/details/84950759
案例 34:掘金网全站用户爬虫 scrapy
没想到 3 年前,我就采集掘金数据了,间隔这段时间,掘金也发生了一些变化,首先域名从 juejin.im
切换到了 juejin.cn
,顾你需要修改博客其 测试 URL 地址为 https://juejin.cn/user/712139233835879/followers
,然后再修改 settings.py
文件内容,重点修改部分参考下述代码:
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
"Host": "juejin.cn",
"Referer": "https://www.baidu.com",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
原博客地址:https://blog.csdn.net/hihell/article/details/85047409
案例 35~案例 40:
- Python 爬虫入门教程 35-100 知乎网全站用户爬虫 scrapy
- Python 爬虫入门教程 36-100 酷安网全站应用爬虫 scrapy
- Python 爬虫入门教程 37-100 云沃客项目外包网数据爬虫 scrapy
- Python 爬虫入门教程 38-100 教育部高校名单数据爬虫 scrapy
- Python 爬虫入门教程 39-100 天津市科技计划项目成果库数据抓取 scrapy
这 5 篇博客所涉及的目标站点,都可以继续访问,博客依旧可以学习应用。
案例 40:博客园博客采集,搜索结果被加上了验证码,而且识别难度非常高,在新版的《爬虫 120 例》中反爬部分,我们尝试将其解决。
今日复盘结论
今天复盘了 11 个案例,其中大部分目标站点为可用状态,当然也存在几个案例因为网站升级,界面更新的缘故,原地址失效。
在保证与原博客中实现的技术保持一致的情况下,橡皮擦替换了其中的部分案例,便于大家继续学习。
收藏时间
本期博客收藏过 400,立刻更新下一篇
今天是持续写作的第 204 / 200 天。
可以关注我,点赞我、评论我、收藏我啦。
更多精彩
以上是关于值!一篇博客,容纳11个Python爬虫案例总结,《爬虫100例》专栏第6篇复盘文章的主要内容,如果未能解决你的问题,请参考以下文章
一篇博客,拿下7个爬虫案例,够几天的学习量啦,《爬虫100例》第4篇复盘文章
一篇博客,拿下7个爬虫案例,够几天的学习量啦,《爬虫100例》第4篇复盘文章