值!一篇博客,容纳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:

  1. Python 爬虫入门教程 35-100 知乎网全站用户爬虫 scrapy
  2. Python 爬虫入门教程 36-100 酷安网全站应用爬虫 scrapy
  3. Python 爬虫入门教程 37-100 云沃客项目外包网数据爬虫 scrapy
  4. Python 爬虫入门教程 38-100 教育部高校名单数据爬虫 scrapy
  5. Python 爬虫入门教程 39-100 天津市科技计划项目成果库数据抓取 scrapy

这 5 篇博客所涉及的目标站点,都可以继续访问,博客依旧可以学习应用。

案例 40:博客园博客采集,搜索结果被加上了验证码,而且识别难度非常高,在新版的《爬虫 120 例》中反爬部分,我们尝试将其解决。

今日复盘结论

今天复盘了 11 个案例,其中大部分目标站点为可用状态,当然也存在几个案例因为网站升级,界面更新的缘故,原地址失效。

在保证与原博客中实现的技术保持一致的情况下,橡皮擦替换了其中的部分案例,便于大家继续学习。

收藏时间

本期博客收藏过 400,立刻更新下一篇

今天是持续写作的第 204 / 200 天。
可以关注我,点赞我、评论我、收藏我啦。

更多精彩


以上是关于值!一篇博客,容纳11个Python爬虫案例总结,《爬虫100例》专栏第6篇复盘文章的主要内容,如果未能解决你的问题,请参考以下文章

一篇博客,拿下7个爬虫案例,够几天的学习量啦,《爬虫100例》第4篇复盘文章

一篇博客,拿下7个爬虫案例,够几天的学习量啦,《爬虫100例》第4篇复盘文章

爬虫5年保更新专栏异步协程典型案例,一篇掌握~

20行Python代码爬虫蓝桥训练营,一篇博客整合这几个关键词

Python爬虫爬取一篇韩寒新浪博客

Python爬虫编程思想:实战案例:抓取博客文章列表