吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4766|回复: 47
收起左侧

[Python 转载] 光棍节就要来了,不打算给自己爬了一堆小姐姐一起过节?

  [复制链接]
hmhml 发表于 2020-11-10 22:34
分享一个之前写的爬取小姐姐的代码
爬取网址是:http://www.zdqx.com/qingchun
代码:
[Python] 纯文本查看 复制代码
import requests    #导入requests库import re    #导入re库
import os    #导入os库

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
    'referer': 'http://www.zdqx.com/pcbz/70270.html',
    'cookie': 'Hm_lvt_303a32038183efa6d8efec90c0031b87=1581472898; Hm_lpvt_303a32038183efa6d8efec90c0031b87=1581472912'
}    #设置伪装头

def get_urls(url,num_page):    #定义一个获得urls的函数
    response = requests.get(url=url, headers=headers)    #用requests库的get函数访问网站url,并且用伪装头进行伪装,以免被反爬
    response.encoding = response.apparent_encoding    #获得的信息编码模式为网站的编码模式
    result = re.findall('<div class="listbox">(.*?)</div>', response.text, re.S)    #用正则表达式去提取<div class="listbox">   </div>中的内容
    urlsTitleList = re.findall('<a href="(.*?)" target="_blank" title="(.*?)">', str(result), re.S)   #提取标题
    pageNumList = re.findall('<em class="page_num">共(.*?)张</em>',str(result), re.S)   #提取张数
    for urlAndTitle,num in zip(urlsTitleList,pageNumList):    #依次便利
        url = 'http:'+urlAndTitle[0]    #url前加上http用于访问网站
        title = urlAndTitle[1]    #标题是第二个,编程中0是第一个
        num = int(num)    #将获得的页数转换为int格式
        for page in range(1,num+1):    #依次便利第一页到第总页数+1页
            if page == 1:    #如果是第一页
                newUrl = url   #新的url还是这个url
            else:    #如果不是,就需要构造
                newUrl = url.replace('.html','_%s.html'%page)  #根据页数来构造新的url
            resp = requests.get(newUrl,headers=headers)   #访问构造的url获得信息
            resp.encoding = resp.apparent_encoding   #编码模式为网站编码模式
            div_main = re.findall('<div class="main_center_img" style=" min-height: 745px;">(.*?)</div>',resp.text,re.S)   #用正则表达提取信息
            url_alt = re.findall('<img src="(.*?)"', str(div_main), re.S) # 长度为3
            _url = 'http:'+url_alt[1]    #构造网站
            imgTitle = title+str(page)    #页数
            savedata(_url,imgTitle,num_page)    #保存

def savedata(url,title,num_page):    #定义一个保存函数
    path = '小姐姐图片/第{}页'.format(num_page)    #保存路径为 小姐姐图片/第{}页
    if not os.path.exists(path):   #如果没有就自动创建
        os.makedirs(path) #多级目录
    response = requests.get(url,headers=headers)   #requests库访问
    response.encoding = response.apparent_encoding   #编码同上
    with open(path + '/' + title + '.jpg',mode="wb") as f:    #打开一个jpg文件,没有就新建
        f.write(response.content)    #保存二进制信息
    print(title+' 保存成功!')    #保存成功
    f.close()    #关闭

def download_page(num_page):     #定义下载函数
    if num_page == 1:    #如果是第一页
        url = 'http://www.zdqx.com/qingchun/index.html'   #采集网址就是该网址
    else:    #否则
        url = 'http://www.zdqx.com/qingchun/index_' + str(num_page) + '.html'    #网址后加数字
    get_urls(url, num_page)    #调用函数访问
    print('第' + str(num_page) + '页采集完毕!')

def main_run():  #定义主函数
    for page in range(1, 41):   #便利1-41
        download_page(page)   #下载


if __name__ == '__main__':
    main_run()    #运行

免费评分

参与人数 9吾爱币 +6 热心值 +8 收起 理由
kangshunzhi + 1 + 1 热心回复!
vivek_1991 + 1 哈哈,这不得多来点
ygf415 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
有毒的大妖怪 + 1 热心回复!
狐白本白 + 1 + 1 热心回复!
winner3782 + 1 + 1 我很赞同!
eyesstworld + 1 666
qinni8513 + 1 + 1 谢谢@Thanks!
app740520 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

  • · 源码|主题: 47, 订阅: 1

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

列明 发表于 2020-11-10 22:43
希望不會被刪。網址好評!
hncs2008 发表于 2020-11-11 08:51
RS水果 发表于 2020-11-10 23:27
都知道是光棍节了    还爬图片     真人多刺激啊

说的对 真人刺激  
30900 发表于 2020-11-10 22:37
shiwang 发表于 2020-11-10 22:40
不会用啊
qujf 发表于 2020-11-10 22:43
感谢分享,受教了
列明 发表于 2020-11-10 22:49
兄弟,我沒python,給個exe啊,好人一生孤單!呃,平安。
longyi 发表于 2020-11-10 22:51
厉害了呢!
sxbjgh 发表于 2020-11-10 23:04
有点高大上!
RS水果 发表于 2020-11-10 23:27
都知道是光棍节了    还爬图片     真人多刺激啊
淡淡xin 发表于 2020-11-10 23:31
hhh,感觉还是非常有意思的吼!滴,学生卡。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-22 14:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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