zhyy90 发表于 2022-9-29 22:37

小白第一个爬虫—爬取某杂志的pdf文件

初学爬虫,写的第一个脚本,整体能用
但使用过程中有“Connection broken: InvalidChunkLength(got length b'', 0 bytes read)” 的报错,未能解决

# -*- 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('?').split('&')
# 写入文件
      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
    resp.close()
    for link in link_list:
      download(link)
if __name__ == "__main__":
    main()

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

这个教学不错,支持一下
页: [1] 2
查看完整版本: 小白第一个爬虫—爬取某杂志的pdf文件