资讯专栏INFORMATION COLUMN

Python3爬虫下载pdf(一)

instein / 3047人阅读

摘要:爬虫下载一最近在学习的爬虫,并且玩的不亦说乎,因此写个博客,记录并分享一下。

Python3爬虫下载pdf(一)

最近在学习python的爬虫,并且玩的不亦说乎,因此写个博客,记录并分享一下。

需下载以下模块

bs4 模块

requests 模块

一、源码
"""
功能:下载指定url内的所有的pdf
语法:将含有pdf的url放到脚本后面执行就可以了
"""

from bs4 import BeautifulSoup as Soup
import requests
from sys import argv

try:
    ##用于获取命令行参数,argv[0]是脚本的名称
    root_url = argv[1]
except:
    print("please input url behind the script!!")
    exit()

##获得含有所有a标签的一个列表
def getTagA(root_url):
    res = requests.get(root_url)
    soup = Soup(res.text,"html.parser")
    temp = soup.find_all("a")
    return temp

##从所有a标签中找到含有pdf的,然后下载
def downPdf(root_url,list_a):
    number = 0
    ##如果网站url是以类似xx/index.php格式结尾,那么只取最后一个/之前的部分
    if not root_url.endswith("/"):     
        index = root_url.rfind("/")
        root_url = root_url[:index+1]
    for name in list_a:
        name02 = name.get("href")
        ##筛选出以.pdf结尾的a标签
        if name02.lower().endswith(".pdf"):
            pdf_name = name.string 
            number += 1
            print("Download the %d pdf immdiately!!!"%number,end="  ")
            print(pdf_name+"downing.....") 
             ##因为要下载的是二进制流文件,将strem参数置为True     
            response = requests.get(root_url+pdf_name,stream="TRUE")
            with open(pdf_name,"wb") as file:
                for data in response.iter_content():
                    file.write(data)

if __name__ == "__main__":
    downPdf(root_url,getTagA(root_url))
二、亮点

利用str.rfind("S") 函数来获得 Sstr 从右边数第一次出现的index

使用str.lower().endswith("S") 函数来判断str 是否以S/s 结尾

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40765.html

相关文章

  • Python3爬虫下载pdf(二)

    摘要:爬虫下载二最近在学习的爬虫,并且玩的不亦说乎,因此写个博客,记录并分享一下。需下载下载以下模块模块模块一源码设置命令行参数功能下载目标最大的线程数。方法的作用与内置函数类似,不过函数会在多个线程中并发调用方法返回一个生成器。 Python3爬虫下载pdf(二) 最近在学习python的爬虫,并且玩的不亦说乎,因此写个博客,记录并分享一下。 需下载下载以下模块 bs4模块 reques...

    LancerComet 评论0 收藏0
  • 爬虫 - 收藏集 - 掘金

    摘要:在这之前,还是有必要对一些概念超轻量级反爬虫方案后端掘金前言爬虫和反爬虫日益成为每家公司的标配系统。 爬虫修炼之道——从网页中提取结构化数据并保存(以爬取糗百文本板块所有糗事为例) - 后端 - 掘金欢迎大家关注我的专题:爬虫修炼之道 上篇 爬虫修炼之道——编写一个爬取多页面的网络爬虫主要讲解了如何使用python编写一个可以下载多页面的爬虫,如何将相对URL转为绝对URL,如何限速,...

    1fe1se 评论0 收藏0
  • 50行Python代码,教你获取公众号全部文章

    摘要:今天介绍一种通过抓包端微信的方式去获取公众号文章的方法。如上图,通过抓包工具获取微信的网络信息请求,我们发现每次下拉刷新文章的时候都会请求这个接口。 本文首发自公众号:python3xxx 爬取公众号的方式常见的有两种 通过搜狗搜索去获取,缺点是只能获取最新的十条推送文章 通过微信公众号的素材管理,获取公众号文章。缺点是需要申请自己的公众号。 showImg(//img.mukew...

    MartinHan 评论0 收藏0
  • Python3网络爬虫实战---16、Web网页基础

    摘要:,简称为,是一种脚本语言,和配合使用,提供给用户的只是一种静态的信息,缺少交互性。这就是网页的三大基本组成。父节点拥有子节点,同级的子节点被称为兄弟节点。选择属于其父节点的首个节点的每个节点。同上,从最后一个 上一篇文章:Python3网络爬虫实战---15、爬虫基础:HTTP基本原理下一篇文章:Python3网络爬虫实战---17、爬虫基本原理 我们平时用浏览器访问网站的时候,一个...

    netScorpion 评论0 收藏0
  • 干货 | 学习Python的正确姿势

    摘要:勤学学习效率与效果取决于执行力。这一步学习的正确姿势是在实践操作中发掘问题,然后带着问题找答案。拆分任务将目标分解成具体可执行的学习任务。勤学强大的执行力是学习的根本保障。分享复述检验学习成果,提高学习效果的最好方法。 showImg(https://segmentfault.com/img/bVbcPGZ?w=256&h=256); 前段时间和大家一起分享了一篇关于学习方法内容《大牛...

    Thanatos 评论0 收藏0

发表评论

0条评论

instein

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<