吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2519|回复: 13
收起左侧

[Python 原创] 小白第一个爬虫—爬取某杂志的pdf文件

[复制链接]
zhyy90 发表于 2022-9-29 22:37
初学爬虫,写的第一个脚本,整体能用
但使用过程中有“Connection broken: InvalidChunkLength(got length b'', 0 bytes read)” 的报错,未能解决

[Python] 纯文本查看 复制代码
# -*- coding: utf8 -*-
import requests
import re
# 创建下载函数
def download(link):
#     obj = re.compile(r'<b>.*?<b>(?P<title>.*?)</b>',re.S)
# 匹配出下载pdf的正则表达式
    obj1 = re.compile(r'<b>.*?create_pdf(?P<ull>.*?) target=',re.S)
#    url = f'http://xxx/reader/issue_list'+{link}
# 获取网页源码
    resp = requests.get(link)
    res = resp.text
# 通过正则表达式获取网页中想要的内容
    result = obj1.finditer(res)

# 为每篇文章的下载准备空列表
    url_list = []
    for it in result:
# 拼接出完整的下载连接,并放入列表中
        new_url = 'http://xxx/reader/create_pdf'+it.group("ull")
        url_list.append(new_url)
    for urllist in url_list:
# 获取下载内容
        new_resp = requests.get(urllist)
# 以网页中的file_no命名,因为没想出怎么同时匹配出名字和下载链接
        name = urllist.split('?')[1].split('&')[0]
# 写入文件
        with open(f'./download/{name}' + '.pdf', 'wb') as f:
            f.write(new_resp.content)
            print(f'{name}' +'下载完成!')
# 及时关闭响应,否则会因正在连接的过多导致程序终止
    resp.close()
# 定义主程序运行的内容
def main():
    obj2 = re.compile(r'reader/issue_list(?P<mlink>.*?)"', re.S)
    url = 'http://xxx/index.aspx'
    resp = requests.get(url)
    res = resp.text
    link_list = []
    result = obj2.finditer(res)
    for it in result:
# 获取每一期的地址装进列表中
        linklist = 'http://xxx/reader/issue_list' + it.group('mlink')
        link_list.append(linklist)
# 可以通过切片的方式下载想要的期数
    link_list = link_list[17:-1]
    resp.close()
    for link in link_list:
        download(link)
if __name__ == "__main__":
    main()

免费评分

参与人数 4吾爱币 +9 热心值 +4 收起 理由
hoddy + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
林北是大帅哥 + 1 + 1 我很赞同!
亲爱的默声人 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

feiyu361 发表于 2022-10-1 10:09
zhyy90 发表于 2022-9-30 13:49
中华流行病学杂志
http://chinaepi.icdc.cn/zhlxbx/ch/index.aspx

谢谢了,这就试一试
 楼主| zhyy90 发表于 2022-9-30 13:49
feiyu361 发表于 2022-9-30 11:24
胸弟,网站是多少?

中华流行病学杂志
http://chinaepi.icdc.cn/zhlxbx/ch/index.aspx
guohuanxian 发表于 2022-9-30 10:45
Js_Aaron 发表于 2022-9-30 11:16
谢谢 学习一下,感谢分享
feiyu361 发表于 2022-9-30 11:24
胸弟,网站是多少?
lansemeiying 发表于 2022-10-1 08:55
学习中啊,哈哈
py学徒 发表于 2022-10-1 10:12
f'{} '表达式用的好
roselotus 发表于 2022-11-18 15:38
谢谢,好好学习。
15999580954 发表于 2022-11-18 20:04
这个教学不错,支持一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表