博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取网站附件
阅读量:4644 次
发布时间:2019-06-09

本文共 1671 字,大约阅读时间需要 5 分钟。

#爬取站长素材中的免费建立模板import requestsfrom lxml import etreeimport randomheaders = {    "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",    "Connection": "close"      # 防止连接池 一直被占用着  请求结束后马上断开连接  释放连接池中的资源}#第一页的urlurl_page_one = 'http://sc.chinaz.com/jianli/free.html'#其他页 通用的urlurl_demo = 'http://sc.chinaz.com/jianli/free_%d.html'start_page = int(input('enter a start page num:'))end_page = int(input('enter a end page num:'))for i in range(start_page,end_page+1):    if i == 1:        url = url_page_one    else:        url = url_demo%i        response = requests.get(url=url, headers=headers)    response.encoding = 'utf-8'    page_text = response.text        #解析详情页的名称 和 url    tree = etree.HTML(page_text)    div_list = tree.xpath('//div[@id="container"]/div')        for div in div_list:        detail_url = div.xpath('./p/a/@href')[0]        name = div.xpath('./p/a/text()')[0]                #对详情页发起请求        detail_page_text = requests.get(url=detail_url,headers=headers).text                #对详情页的源码数据进行解析:下载地址对应的url        tree = etree.HTML(detail_page_text)                #找到所有的下载地址        li_list = tree.xpath('//div[@class="clearfix mt20 downlist"]/ul/li')                #随机选取一个li标签(li标签中包含了下载地址的url)        li = random.choice(li_list)           download_url = li.xpath('./a/@href')[0]                #进行简历下载  相当于点击下载连接        data = requests.get(url=download_url, headers=headers).content    #content 是以流的形式获取数据        name = name+ ".rar"                with open(name,"wb") as fp:            fp.write(data)                print(name,"下载成功")

 

转载于:https://www.cnblogs.com/kenD/p/11111669.html

你可能感兴趣的文章
get_result --perl
查看>>
163镜像地址
查看>>
ehcache memcache redis 三大缓存男高音
查看>>
eclipse 快捷键Open Implementation 直接退出
查看>>
minix中管道文件和设备文件的读写
查看>>
JAXB - Annotations, Annotations for Enums: XmlEnum, XmlEnumValue
查看>>
context 插图
查看>>
文件管理器中不支持的wma歌曲也显示可以播放的音乐图标
查看>>
Java基础学习-流程控制语句
查看>>
Shell中read的常用方式
查看>>
01javascript数据类型
查看>>
asp.net实现md5加密方法详解
查看>>
AJAX
查看>>
table 的thead th 固定 tbody滚动例子
查看>>
并行计算思考----回溯法求解数独问题
查看>>
设计模式:模板模式
查看>>
和菜鸟一起学OK6410之ADC模块
查看>>
代理 模式
查看>>
[git] 细说commit (git add/commit/diff/rm/reset 以及 index 的概念)
查看>>
DOM Core和HTML DOM的区别
查看>>