python爬虫智能翻页批量下载文件


一、思路是什么?

以京客隆为例,批量下载文件,如财务资料,他的每一份报告都是一份pdf格式的文档。以此页面为目标,下载他每个分类的文件
在这里插入图片描述
整体思路如下yi

二、使用步骤

1.引入库

代码如下(示例):

import requests
import pandas as pd
from lxml import etree
import re
import os

2.解析初始页面

代码如下(示例):

baseUrl ='http://www.jkl.com.cn/cn/invest.aspx'  # 爬取页面的数据
heade ={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'
}


res =requests.get(url=baseUrl,headers=heade).text   
# print(res.text)
html = etree.HTML(res)
res =requests.get(url=baseUrl,headers=heade).text   #   设置变量接受 基础页的响应数据
# print(res.text)
html = etree.HTML(res)

3.获得投资关系的分类名称和url地址

代码如下(示例):
在这里插入图片描述


data_name = html.xpath('//div[@class="infoLis"]//a/text()') # 投资者列表的名字
data_link = html.xpath('//div[@class="infoLis"]//@href')    # 全部列表的链接
name = [data_name.strip() for data_name in data_name]   # 通过for循环去掉空字符
link = ['http://www.jkl.com.cn/cn/'+ data_link for data_link in data_link]  # 拼接字符串
# 合并为字典,方便保存文件
file = dict(zip(name,link))

4.每个列表信息,保存一个文件夹

代码如下(示例):

for name,link in file.items():
    name=name.replace('/','.')
    name=name.replace('...','报表')
    # 上面的把文件名带特许字符的 强制转换为我们想要的文本类型
    path = 'E:/'+ name
    if not os.path.exists(path):
        os.mkdir(path)
        #建立储存位置

5.对列表的每个项目链接进行解析,拿到尾页

在这里插入图片描述

代码如下(示例):

    res_list = requests.get(url = link, headers = heade).text
    list_html = etree.HTML(res_list)
    # print(html_erJi) 解析每个分类的链接
    weiYe = list_html.xpath('//a[text()="尾页"]/@href')
    # print(html_weiye)
    # 拿到尾页信息
    if weiYe !=[]:
        # 正则提取尾页信息
        get_weiYe =re.search("(\d+)'\)",html_weiye[0])
        get_yeMa = get_html_weiYe.group(1)
    else:
        get_yeMa=1
    # print(get_html_yeMa)  看看是不是提取成功


## 6.获取每个列表信息下的 文件名和文件链接

代码如下(示例):

    for get_yeMa in range(1,int(get_yeMa)+1): # 翻页
        yaMa= {
        '__EVENTTARGET': 'AspNetPager1',
        '__EVENTARGUMENT': get_yeMa
        }
        get_lei_html = requests.get(url = link, headers = heade, params = yaMa).text
        res3 =etree.HTML(get_lei_html)
        # print(res3)
        pdf_name = res3.xpath('//div[@class="newsLis"]//li/a/text()')
        # print(pdf_name)

        pdf_url = res3.xpath('//div[@class="newsLis"]//li//@href')

7,让文件名和文件链接处理为列表,保存后下载

代码如下(示例):

  pdf_names = [pdf_name.strip() for pdf_name in pdf_name]
  # print(pdf_names)
  if all(pdf_url):
            pdf_urls = ['http://www.jkl.com.cn'+pdf_url for pdf_url in pdf_url]
            # print(pdf_url)
            pdf_data=dict(zip(pdf_names,pdf_urls))   # pdf地址和名字整合为字典
            for pdfName,pdfUrl in pdf_data.items():
                pdfName =pdfName.replace('/','.')
                res_pdf= requests.get(url =pdfUrl,headers=heade).content
                houZui = pdfUrl.split('.')[-1]
                pdf_pash = path + '/' + pdfName + '.'+ houZui    # 
                # print(pdf_pash)
                with open(pdf_pash,'wb') as f:
                    f.write(res_pdf)
                    print(pdfName,'下载成功')

#全部代码
代码如下(示例):

import requests
import pandas as pd
from lxml import etree
import re
import os

baseUrl ='http://www.jkl.com.cn/cn/invest.aspx'  # 爬取页面的数据
heade ={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'
}

# 1 获取分类模块链接及文件名称
res =requests.get(url=baseUrl,headers=heade).text   #   设置变量接受 基础页的响应数据
# print(res.text)
html = etree.HTML(res)
data_name = html.xpath('//div[@class="infoLis"]//a/text()') # 投资者列表的名字
data_link = html.xpath('//div[@class="infoLis"]//@href')    # 全部列表的链接
name = [data_name.strip() for data_name in data_name]   # 通过for循环去掉空字符
link = ['http://www.jkl.com.cn/cn/'+ data_link for data_link in data_link]  # 拼接拿到列表的各个链接地址
# 合并为字典,方便保存文件
file = dict(zip(name,link))
for name,link in file.items():
    name=name.replace('/','.')
    name=name.replace('...','报表')
    # 上面的把文件名带特许字符的 强制转换为我们想要的文本类型
    path = 'E:/'+ name
    if not os.path.exists(path):
        os.mkdir(path)
        #建立储存位置
    res_list_url = requests.get(url = link, headers = heade).text
    list_url_html = etree.HTML(res_list_url)
    # print(html_erJi) 解析每个分类的链接
    weiYe = list_url_html.xpath('//a[text()="尾页"]/@href')
    # print(html_weiye)
    # 拿到尾页信息
    if weiYe !=[]:
        # 正则提取尾页页数
        get_weiYe =re.search("(\d+)'\)",weiYe[0])
        get_yeMa = get_weiYe.group(1)
    else:
        get_yeMa=1
    # print(get_html_yeMa)  看看是不是提取成功

    for get_yeMa in range(1,int(get_yeMa)+1):  # 翻页
        yaMa= {
        '__EVENTTARGET': 'AspNetPager1',
        '__EVENTARGUMENT': get_yeMa
        }
        get_erJi_html = requests.get(url = link, headers = heade, params = yaMa).text
        res3 =etree.HTML(get_erJi_html)
        # print(res3)
        pdf_name = res3.xpath('//div[@class="newsLis"]//li/a/text()')
        # print(pdf_name)

        pdf_url = res3.xpath('//div[@class="newsLis"]//li//@href')
        # print(pdf_url)
        pdf_names = [pdf_name.strip() for pdf_name in pdf_name]
        # print(pdf_names)
        """ 处理文件的空数据问题"""
        if all(pdf_url):
            pdf_urls = ['http://www.jkl.com.cn'+pdf_url for pdf_url in pdf_url]
            # print(pdf_url)
            data2=dict(zip(pdf_names,pdf_urls))
            for s,n in data2.items():
                s =s.replace('/','.')
                res4 = requests.get(url=n,headers=heade).content
                houzui = n.split('.')[-1]
                pdf_pash = path + '/' + s + '.'+houzui
                # print(pdf_pash)
                with open(pdf_pash,'wb') as f:
                    f.write(res4)
                    print(s,'下载成功')

下载的文件
在这里插入图片描述
在这里插入图片描述

m0_49985839
关注 关注
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python爬虫实战案例源码-批量爬取今日头条街拍美图
07-14
在本实践案例中,我们将深入探讨如何利用Python爬虫技术批量获取今日头条街拍美图。首先,我们需要了解Python爬虫的基础知识,这是整个项目的核心。 Python爬虫是通过编写特定的代码来自动化网络数据抓取的过程。在...
Python爬虫】简单实战——手把手教你爬取分页数据并存储到本地excel(页面少、单线程)
destiny_balabala的博客
11-16 5228
一、前言 最近在看研究生导师的信息。但是导师信息是分页存储的(大概有10页吧),点来点去很麻烦,所以我就想把所有信息爬取下来????,存到本地excel中。这样可以前期做一个筛选,然后详细看每个导师的主页信息????‍???? 。 二、准备工作 这次我用的是Python????,相关的库有: requests:发送http请求 bs4、BeautifulSoup:提供很多对象和方法,帮助我们解析html页面的标签 re:正则式库,和BeautifulSoup库配合使用,比如:找到某个标签,其class属性
使用python 爬取网站数据 分页数据 并将数据导入excel
qq_41690869的博客
08-21 1185
extracted_data.append({'日期': data1, '成交量(吨)': data2,'成交均价(元/吨)': data3,'成交额(元)': data4})df.to_excel('data.xlsx', index=False) # 设置index=False以避免写入索引列。# 您可以使用BeautifulSoup的查找和选择器方法来定位和提取特定的数据。# 在这里编写代码来提取您需要的数据。# 在这里编写代码来提取您需要的数据。# 定义一个空列表来存储提取的数据。
Python爬虫实现爬取下载网站数据的几种方法
最新发布
2401_83470102的博客
05-17 2573
使用脚本进行下载的需求很常见,可以是常规文件、web页面、Amazon S3和其他资源。Python 提供了很多模块从 web 下载文件。下面介绍。
python爬虫/ 获取多页信息并下载本地 P1-1
Moniko_yo的博客
03-21 1032
本次主要是为了巩固之前学,将多个软件/模块连贯起来,做完整案列。
Python批量爬虫下载PDF文件代码实现
阿黎逸阳的博客
08-20 3502
python批量爬虫下载pdf文件
python+selenium爬虫自动化批量下载文件
seattle2009的博客
01-19 5291
使用python+selenium自动化来代替人工去操作从网站导出文本内容下载并保存为TXT文件
Python爬虫实战,Request+urllib模块,批量下载爬取飙歌榜所有音乐文件
Java癫疯的博客
12-20 2708
Python爬虫实战,Request+urllib模块,批量下载爬取飙歌榜所有音乐文件
基于selenium模拟天眼查登录并爬取企业工商信息的python爬虫
05-04
此资源仅供学习用途,当前selenium都是基于无头模式的firefox或者chrome等浏览器进行爬虫抓取,天眼查的反爬技术算是很不错的,仅仅用于个人学习用,并不可以进行大数据的爬取 技术: python selenium 爬虫 模拟登陆...
基于Python的网络爬虫之内涵段子批量爬取采集教程含源代码.pdf
06-19
打开之后,不难看到里面一个一个灰常有内涵的段子,当你进行页的时候,注意url地址的变化。 你会发现规律: 第一页url: http://www.neihan8.com/article/list_5_ 1 .html 第二页url: ...
基于python的百度图库爬虫 .zip
11-12
本项目是关于如何使用Python编写一个专门针对百度图库的爬虫程序,它允许用户输入关键词,然后自动将搜索到的图片批量下载到本地。 首先,我们需要了解Python中的几个关键库,它们在爬虫开发中起到至关重要的作用:...
批量图片爬虫工具(可以自动下载上万张图片)
01-25
python代码,可以从百度图片获取给定关键词的所有图片网址,并自动命名下载到一个文件夹中
通过python爬虫批量下载PDF文件
02-20
通过python爬虫批量下载PDF文件,当前代码使用下载人教版学生教材举例; 其中涉及到批量下载文件重命名、正则表达式等具体应用
JAVA爬虫批量下载网页文件
08-07
爬虫代码可将一个多页面含有多条文件下载地址截取到,然后将下载地址放到linux系统里在控制台输入一条命令就可以进行批量下载(还可以直接调用浏览器的接口直接下载,这个可以自行修改),代码有注释具体目的解压后有个txt文件有简单介绍。代码不是完全原创的,也是自己根据需要进行整合。
python爬虫批量下载apk文件
04-21
python爬虫批量下载apk文件python爬虫批量下载apk文件python爬虫批量下载apk文件python爬虫批量下载apk文件python爬虫批量下载apk文件
python 爬虫批量下载音乐
06-28
提供python爬虫批量下载音乐的自动化脚本源代码供大家参考,详细注释,如有不理解的地方可以下载体验。个人原创,仅供参考。
0514基于Python爬取Boss直聘数据.zip
05-14
6. **批量抓取**:如果需要抓取多页数据,还需实现页功能,如通过循环或递归遍历所有页面。 Python爬虫需要注意遵守网站的robots.txt协议,尊重网站的版权,不进行非法的商业用途,且应尽量减少对服务器的压力,...
简单python网络爬虫批量下载视频
qq_62861466的博客
01-14 3524
简单python网络爬虫批量下载视频
使用IDM从网站下载图片——从页网站下载图片
weixin_43416590的博客
10-30 2204
有时候一些政府或者事业单位的报告等是页的图片,还经常很多页,但是我们需要下载下来看我们可以批量下载一下。
Python网络爬虫项目开发实战_下载缓存_编程案例解析实例详解课程教程.pdf
05-03
本资源是一份关于Python网络爬虫项目开发实战的详细教程,特别关注下载缓存技术的应用。在爬取大型网站时,如果需要抓取额外的数据,如国旗图片URL,传统的做法是重新下载整个网站,这在面对大量网页的网站时效率极...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • python爬虫智能翻页批量下载文件 2295
  • 在MeterSphere中简单使用beanshell语言 597
  • Python使用xlm库爬取信息 291
  • 记录Python关于Openpyxl库的使用 210
  • python自动化从Unittest开始 134

最新评论

  • python爬虫智能翻页批量下载文件

    盼盼编程: 先占个坑,慢慢看

  • python爬虫智能翻页批量下载文件

    不正经的kimol君: 学起来,头秃的那种~

  • Python使用xlm库爬取信息

    盼盼编程: 先占个坑,慢慢看。要是能受到大佬的回访那就太好了!

  • Python使用xlm库爬取信息

    air1100: 好!

  • 记录Python关于Openpyxl库的使用

    兴趣使然的程序猿: 点赞支持一下,原创不容易,深有体会

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 在MeterSphere中简单使用beanshell语言
  • Python使用xlm库爬取信息
  • 记录Python关于Openpyxl库的使用
2023年1篇
2021年4篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司横岗百度网站优化木棉湾网站设计同乐企业网站制作荷坳高端网站设计坪山建网站大芬如何制作网站布吉网站建设龙岗seo网站优化广州百度竞价丹竹头关键词排名坂田企业网站改版坪山网站优化永湖营销型网站建设坪山如何制作网站大浪企业网站建设坂田seo网站优化光明百度seo深圳SEO按天扣费光明阿里店铺运营荷坳至尊标王平湖设计网站坪山标王布吉建设网站双龙企业网站制作石岩百姓网标王推广双龙英文网站建设大运百度竞价南澳网站seo优化龙华网站设计模板双龙网站定制歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化