吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6812|回复: 25
收起左侧

[Python 转载] 图集谷爬虫,采用Xpath的方法。

  [复制链接]
学海AoA无涯 发表于 2020-8-15 03:01
本帖最后由 学海AoA无涯 于 2020-8-15 21:21 编辑


哈哈哈哈,第二个了AoA

学习了一下Xpath,原来Xpath是用于xml中的,,html是xml的儿子。。。又长知识了
上一篇  新人Python,第一只爬虫,,我就只会re.findall,你咬我?
感觉Xpath也有不中用的时候,还是需要与正则交替使用
难道我明天要学习一下Beautiful Soup??
我看别人都是自定义了函数的??有点上头


上代码,睡觉了
[Python] 纯文本查看 复制代码
import requestsfrom lxml import etree
import re
import os
# 这个主要是为了学习Xpath的用法,嗯嗯呢呢~纯用正则表达式传送门[url=https://www.52pojie.cn/thread-1244292-1-1.html]https://www.52pojie.cn/thread-1244292-1-1.html[/url]
headers = {
    'User-Agent': 'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
search = input('需要一个女朋友啊~~~ :  ')
searchpage = requests.get('https://www.tujigu.com/search/' + search, headers=headers).text
searchpage = etree.HTML(searchpage) # 觉得要用Xpath,需要先进行格式化操作
pageurls = searchpage.xpath('//div[@class="hezi"]//li/a/@href') # 使用Xpath获取搜索页的每个图集的URL地址

for totle_url in pageurls:
    totle = requests.get(totle_url, headers=headers).content.decode('utf-8')
    picnum = int(re.findall("<p>图片数量: (.*?)P</p>", totle)[0]) # 需要用正则找出图集中图片的总数量,Xpath准确率感觉不高
    ID = totle_url.split("/")[4] # 按照URL的格式,以斜线分割,取出图集的ID
    totle = etree.HTML(totle) # 因为这次主要是练习Xpath,所以接着转换,感觉我的代码有些凌乱呢??
    title = totle.xpath('//div[@class="weizhi"]/h1/text()')[0] # 取出图集的标题

# 创建图集目录
    path = '图集谷\\' + title # 设置输出文件夹
    if not os.path.exists(path): # 判断文件夹不存在
        os.makedirs(path) # 不存在则建立文件夹
        print('目录创建完成(*^v^*),记得设置为隐私文件哦^_^!')
    else :
        print('目录已创建(-o⌒)=3!!,一看就是老绅士了 ╭∩╮ ')

# 开始下载图片
    print(title)
    for i in range(1, picnum+1):
        picurl = "https://lns.hywly.com/a/1/" + ID + '/' + str(i) + '.jpg' # 单个图片URL地址的拼接
        print('(≧^.^≦)喵~~~正在下载:' + picurl)
        pic = requests.get(picurl).content
        with open('%s\%s.jpg'%(path, i), 'wb') as f:
            f.write(pic)
    print(title + '\n下载完成!\n\n')

免费评分

参与人数 11吾爱币 +12 热心值 +11 收起 理由
jly123 + 1 + 1 我很赞同!
2019想想 + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
家有葫芦仔 + 1 + 1 网站很赞
soaiyou + 1 戏太多
neilchou + 1 热心回复!
happylee2018 + 1 + 1 热心回复!
xyc171918040 + 1 + 1 我很赞同!
roc0838 + 1 + 1 用心讨论,共获提升!
hsyz1016 + 1 + 1 谢谢@Thanks!
schedule + 1 我很赞同!

查看全部评分

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

 楼主| 学海AoA无涯 发表于 2020-8-15 15:55
本帖最后由 学海AoA无涯 于 2020-8-15 15:58 编辑
寒塘鹤影 发表于 2020-8-15 10:58
tianshimeitu.com可以看看

在工地搬砖(没那么夸张??*(???╰?╯????)??),,手机上面看了一下网页源码,简单分析了一下,用手机写的,,能够下载这个网站的图片,,晚上回家拿电脑具体分析
您这个付费,我这初学者也不会啊



[Python] 纯文本查看 复制代码
import requests
import os
headers = {
    'User-Agent': 'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
# 开始下载图片
for i in range(1, 10000):
    picurl = 'https://gitee.com/kevin2046/pict/raw/master/img/' + str(i) + '.jpg' # 单个图片URL地址的拼接
    print('(≧^.^≦)喵~~~正在下载:' + picurl)
    pic = requests.get(picurl).content
    with open(str(i) +'.jpg', 'wb') as f:
        f.write(pic)
print(picsname + '\n下载完成!\n\n')



Screenshot_2020-08-15-15-49-20.png
 楼主| 学海AoA无涯 发表于 2020-8-15 10:21
neilchou 发表于 2020-8-15 09:42
现在在参加单片机比赛的培训,看代码看无聊了来逛逛,正好看到大佬的帖子,之前看到另一个大佬写的,闪退 ...

之前那个闪退的原因是,我在输出的时候插入了颜文字,,你把print语录里面的颜文字删了就行了,或者用IDE打开,不要直接双击,,另外,保存目录好像有问题,复制代码的时候好像出错了
killayamata 发表于 2020-8-15 08:11
皈依一 发表于 2020-8-15 08:16
感谢兄弟的分享精神!
a5228172 发表于 2020-8-15 08:20
有没有类似图集谷的了
wangpeng484 发表于 2020-8-15 08:43
看起来这个虫子不错,不知效果怎么样
sixwalker 发表于 2020-8-15 08:49
大佬,大佬,真是dior
yeh19600 发表于 2020-8-15 08:53
感謝大大分享 小白收下
ying656 发表于 2020-8-15 09:10
你们这些会正则的人 就是牛逼
头像被屏蔽
Menguy 发表于 2020-8-15 09:16
提示: 作者被禁止或删除 内容自动屏蔽
水清无余 发表于 2020-8-15 09:29
十分感谢大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 15:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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