学海AoA无涯 发表于 2020-8-15 03:01

图集谷爬虫,采用Xpath的方法。

本帖最后由 学海AoA无涯 于 2020-8-15 21:21 编辑

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

https://static.52pojie.cn/static/image/hrline/1.gif
上代码,睡觉了import requestsfrom lxml import etree
import re
import os
# 这个主要是为了学习Xpath的用法,嗯嗯呢呢~纯用正则表达式传送门https://www.52pojie.cn/thread-1244292-1-1.html
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)) # 需要用正则找出图集中图片的总数量,Xpath准确率感觉不高
    ID = totle_url.split("/") # 按照URL的格式,以斜线分割,取出图集的ID
    totle = etree.HTML(totle) # 因为这次主要是练习Xpath,所以接着转换,感觉我的代码有些凌乱呢??
    title = totle.xpath('//div[@class="weizhi"]/h1/text()') # 取出图集的标题

# 创建图集目录
    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')

学海AoA无涯 发表于 2020-8-15 15:55

本帖最后由 学海AoA无涯 于 2020-8-15 15:58 编辑

寒塘鹤影 发表于 2020-8-15 10:58
tianshimeitu.com可以看看
在工地搬砖(没那么夸张??*(???╰?╯????)??),,手机上面看了一下网页源码,简单分析了一下,用手机写的,,能够下载这个网站的图片,,晚上回家拿电脑具体分析
您这个付费,我这初学者也不会啊
https://static.52pojie.cn/static/image/hrline/2.gif


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')


学海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

有没有类似图集谷的了{:1_918:}

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

十分感谢大佬
页: [1] 2 3
查看完整版本: 图集谷爬虫,采用Xpath的方法。