吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7006|回复: 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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
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, 2025-4-10 22:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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