python批量下载csdn文章

这篇具有很好参考价值的文章主要介绍了python批量下载csdn文章。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明:该爬虫只可用于提高自己学习、工作效率,请勿用于非法用途,否则后果自负

功能概述:

  1. 根据待爬文章url(文章id)批量保存文章到本地;
  2. 支持将文中图片下载到本地指定文件夹;
  3. 多线程爬取;

1.爬取效果展示

本次示例爬取的链接地址:
https://blog.csdn.net/m0_68111267/article/details/132574687

原文效果:

python批量下载csdn文章,python爬虫、js逆向,python,开发语言

爬取效果:
python批量下载csdn文章,python爬虫、js逆向,python,开发语言
python批量下载csdn文章,python爬虫、js逆向,python,开发语言

文件列表:

python批量下载csdn文章,python爬虫、js逆向,python,开发语言

python批量下载csdn文章,python爬虫、js逆向,python,开发语言

2.编写代码

爬虫使用scrapy框架编写,分布式、多线程

2.1编写Items

class ArticleItem(scrapy.Item):

    id = scrapy.Field()  # ID
    title = scrapy.Field()
    html = scrapy.Field()  # html


class ImgDownloadItem(scrapy.Item):

    img_src = scrapy.Field()
    img_name = scrapy.Field()
    image_urls = scrapy.Field()


class LinkIdsItem(scrapy.Item):

    id = scrapy.Field()

2.2添加管道



class ArticlePipeline():

    def open_spider(self, spider):
        if spider.name == 'csdnSpider':

            data_dir = os.path.join(settings.DATA_URI)
            #判断文件夹存放的位置是否存在,不存在则新建文件夹
            if not os.path.exists(data_dir):
                os.makedirs(data_dir)
            self.data_dir = data_dir

    def close_spider(self, spider):  # 在关闭一个spider的时候自动运行
        pass
        # if spider.name == 'csdnSpider':
        #     self.file.close()

    def process_item(self, item, spider):
        try:
            if spider.name == 'csdnSpider' and item['key'] == 'article':
                info = item['info']
                id = info['id']
                title = info['title']
                html = info['html']

                f = open(self.data_dir + '/{}.html'.format(title),
                         'w',
                         encoding="utf-8")
                f.write(html)
                f.close()
        except BaseException as e:
            print("Article错误在这里>>>>>>>>>>>>>", e, "<<<<<<<<<<<<<错误在这里")
        return item

2.3添加配置

python批量下载csdn文章,python爬虫、js逆向,python,开发语言

2.4添加解析器


    ...
    
    def parse(self, response):
        html = response.body
        a_id = response.meta['a_id']
        soup = BeautifulSoup(html, 'html.parser')

        [element.extract() for element in soup('script')]
        [element.extract() for element in soup.select("head style")]
        [element.extract() for element in soup.select("html > link")]

        # 删除style中包含隐藏的标签
        [
            element.extract() for element in soup.find_all(
                style=re.compile(r'.*display:none.*?'))
        ]
        
        ...

3.获取完整源码

项目说明文档
python批量下载csdn文章,python爬虫、js逆向,python,开发语言

爱学习的小伙伴,本次案例的完整源码,已上传微信公众号“一个努力奔跑的snail”,后台回复“csdn”即可获取。

源码地址:

https://pan.baidu.com/s/1uLBoygwQGTSCAjlwm13mog?pwd=****

提取码: ****文章来源地址https://www.toymoban.com/news/detail-698825.html

到了这里,关于python批量下载csdn文章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫:抖音 JS XB逆向解析

    哈喽兄弟们,抖音现在有JS加密,以前的方法爬不了饿了,今天来实现一下某音短视频的JS逆向解析。 知识点 动态数据抓包`在这里插入代码片` requests发送请求 X-Bogus 参数逆向 环境模块 python 3.8               运行代码 pycharm 2022.3           辅助敲代码 requests 

    2024年02月08日
    浏览(57)
  • 关于 Python 爬虫 JS 逆向的入门指南

    请注意,这篇指南只是一个概述,为了深入理解和实践,你可能需要额外的学习和实践。         Python 爬虫经常遇到需要逆向 JavaScript 生成的网站内容和逻辑的情况。这种技能对于爬取动态网站,尤其是那些使用了复杂 JS 逻辑和反爬虫技术的网站,尤其重要。 Python 爬虫概

    2024年01月16日
    浏览(43)
  • 【逆向爬虫】Python中执行调用JS的多种方法汇总

    “以前的数据靠买,现在的数据靠爬”,越来越多的学者通过网络爬虫来获取数据。但是做爬虫的人都知道,现在的很多网站都在和我们斗智斗勇,防护普遍越来越好,并且越有价值的网站在这方面越强,哪怕是小一点的网站也多多少少存在一些反爬。而JS逆向又是网络反爬

    2024年02月04日
    浏览(69)
  • Python爬虫系列(二)——Python爬虫批量下载百度图片

    1. 前言 先贴代码 如果要使用上述程序的话,需要修改两个地方 : self.directory 这是本地存储地址,修改为自己电脑的地址,另外,**{}**不要删 spider.json_count = 10 这是下载的图像组数,一组有30张图像,10组就是三百张,根据需求下载 也可以去gitee仓库直接下载程序。 关于 py

    2023年04月08日
    浏览(53)
  • Python批量爬取B站法外狂徒张三所有视频【含jS逆向解密】

    传说中,有人因为只是远远的看了一眼法外狂徒张三就进去了😂 我现在是获取他视频,岂不是直接终生了🤩 网友:赶紧跑路吧 😏 好了话不多说,我们直接开始今天的内容吧! 环境使用 Python 3.8 Pycharm 模块使用 import requests import csv import datetime import hashlib import time 爬虫实现

    2024年02月14日
    浏览(34)
  • Python爬虫:js逆向调式操作及调式中遇到debugger问题

    1. 前言 本篇博客主要讲解js逆向调式操作及调式中遇到debugger问题,内容参考自网上的一些视频讲解结合自己所做过的爬虫测试,觉得小编总结的还不错的读者记得点赞支持一下( 内容仅供学习使用 )。 2. js逆向调式操作 2.1 DOM事件断点 比如虎牙直播登录操作,想快速找到找到

    2024年02月13日
    浏览(47)
  • python爬虫之JS逆向基础小案例:网抑云数据获取

    嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 所用软件 解释器: python 3.8 编辑器: pycharm 2022.3 使用的模块 第三方模块: requests 数据请求 execjs pip install pyexecjs 内置模块(无需安装): nodejs 模块安装: win + R 输入cmd 输入安

    2024年01月20日
    浏览(45)
  • 简单python网络爬虫批量下载视频

    寒假闲来无事,决定尝试一下用python写一个小网络爬虫批量下载视频。 由于是第一次写网络爬虫,可以说是两眼一抹黑,整个程序都是自己一点点试出来的,所以程序本身肯定有一些漏洞和缺陷,如果有建议请批评指正。 由于CSDN审核不允许出现具体网址否则会因为版权问题

    2023年04月08日
    浏览(43)
  • csdn文章markdown格式下载

            网上下载CSDN文章的方式多种多样,有的直接下载为pdf格式,有的利用python/java代码将文章下载为md格式,也有的用JavaScript下载文章,但下载的文章仅限于自己写的(后面会介绍),这里也提供一种简单且易懂的下载文章的方式供读者使用(无需下载任何软件/任何

    2024年02月06日
    浏览(39)
  • Python爬虫实战-批量爬取下载网易云音乐

    大家好,我是python222小锋老师。前段时间卷了一套  Python3零基础7天入门实战 https://blog.csdn.net/caoli201314/article/details/132882813 1小时掌握Python操作Mysql数据库之pymysql模块技术 https://blog.csdn.net/caoli201314/article/details/133199207 一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、se

    2024年02月05日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包