吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5328|回复: 35
收起左侧

[Python 转载] 新人Python,第一只爬虫,,我就只会re.findall,你咬我?

  [复制链接]
学海AoA无涯 发表于 2020-8-11 23:46
本帖最后由 学海AoA无涯 于 2020-8-15 10:54 编辑

来吾爱有几年了,这是我第一次发帖,还不会操作,看不顺眼的就将就看着(^_?)☆
(σ???)σ..:*☆哎哟不错哦

学习了4-5天,觉得自己行了,就动手写了一个,能够跑起来,个人觉得(σ???)σ..:*☆哎哟不错哦
由于初学,就只会用findall查找关键字,我想这个新手应该是看得懂的
废话不多说,直接上代码
[Python] 纯文本查看 复制代码
import requests
import re
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'
}
# 根据搜索,得到搜索结果网页
search = input('你想找怎样的女盆友 : ')
murl = 'https://www.tujigu.com/search/' + search
response = requests.get(murl, headers=headers)
HTML = response.content.decode('utf-8')
urls = re.findall('<a href="(.*?)" target="_blank"><img src=', HTML) # 获取全部图集的URL地址
picstotle = len(urls)
print('共搜到 {} 个图集,由于网站原因,最多只能搜索到20个'.format(picstotle))

# 从全部图集URL中,找出单个图集的URL进行分析
for url in urls:
    response = requests.get(url, headers=headers)
    HTML = response.content.decode('utf-8')
    picsname = re.findall('<title>(.*?)</title>', HTML)[0] # 图集的名称
    picmax = int(re.findall('<p>图片数量: (.*?)P</p>', HTML)[0]) # 获取总的图片数量
    ID = url.split("/")[4] #获取图集的ID,方便进行图片URL的拼接
    path = '图集谷\\' + picsname

# 创建图集目录
    if not os.path.exists(path):
        os.makedirs(path)
        print('目录创建完成!,记得设置为隐私文件哦  ')
    else:
        print('目录已创建!!,一看就是老绅士了 ')
# 开始下载图集
    print(picsname)
    print('开始下载嗷~~~')
    for i in range(1, picmax):
        picurl = 'https://lns.hywly.com/a/1/' + ID +'/' + str(i) + '.jpg'
        print('(≧^.^≦)喵~~~正在下载:' + picurl + '')
        res = requests.get(picurl).content
        with open('%s\%s.jpg'%(path, i), 'wb') as f:
            f.write(res)
    print(picsname + '\n下载完成!\n\n')


免费评分

参与人数 1热心值 +1 收起 理由
楠宝 + 1 用心讨论,共获提升!

查看全部评分

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

 楼主| 学海AoA无涯 发表于 2020-8-12 23:36
砺心缘起 发表于 2020-8-12 19:12
能请问一下,大佬在哪里入门的吗?能指点一下!好少走点弯路!先说声谢谢了!

最开始看过觅风的易语言(全中文),,算是在这里入门的,,但是觉得易语言不被认可,看了20+集,大体知道了基础的编程理念,,之后因为学习,没有怎么碰电脑了,,

高考完了,想学学Python,,,,教程推荐小甲鱼的Python教程视频,感觉他讲的很风趣,骚话不断,也买了小甲鱼的书(第一版的),看到了第四章,,就在吾爱,CSDN,,看了些别人的爬虫,复制下来运行有时会出错,看错误提示找解决方法,,发现简单的爬虫就只到了requests和re库,,然后自己模仿着写了一下,能够运行
小甲鱼在14章才讲爬虫,,至于为什么跳过几章,直接到爬虫,,,都是绅士,就不解释了

要是0基础学编程,建议先从易语言开始吧,,编程的总体概念其实都一样,,就是不同语言有自己独特的地方罢了
五月何欢 发表于 2020-8-12 12:48
tem的 这是四天的成果?我七天只知道变量是啥玩意
no-problem 发表于 2020-8-12 09:13
越看越牛b
   整那么多花里胡哨的都不看一下的么
关山月明 发表于 2020-8-12 11:23
正则虽然效率高,看着确实难受,楼主可以试试xpath,简单易学,解析效率还挺高
龙舌兰 发表于 2020-8-12 11:25
这是啥?刚入门看不懂
 楼主| 学海AoA无涯 发表于 2020-8-12 12:34
关山月明 发表于 2020-8-12 11:23
正则虽然效率高,看着确实难受,楼主可以试试xpath,简单易学,解析效率还挺高

慢慢学,不着急
 楼主| 学海AoA无涯 发表于 2020-8-12 12:36
no-problem 发表于 2020-8-12 09:13
越看越牛b
   整那么多花里胡哨的都不看一下的么

我不知道有些颜文字符号显示不出来
fanvalen 发表于 2020-8-12 12:55
我也写过这网站的py当时没写这么复杂
就是req和re库 提取一下网页的数字,和有多少张图片,直接遍历就完了
[Python] 纯文本查看 复制代码
import requests
import re



hd={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}


#输入主网页
murl="https://www.tujigu.com/a/34686/"

nb=re.findall(r"https://www.tujigu.com/a/(.*?)/",string=murl)

data=requests.get(murl,headers=hd,timeout=30)
data.encoding="utf-8"
#总页数
pat=r"<p>图片数量: (.*?)P</p>"
p=re.findall(pattern=pat,string=data.text)



#下载所有图片
for i in range(int(p[0])+1):
    try:
        imgurl="https://lns.hywly.com/a/1/"+str(nb[0])+"/"+str(i)+".jpg"
        img=requests.get(imgurl,headers=hd,timeout=60)
        #写入d盘
        with open("d:\\"+str(nb[0])+"-"+str(i)+".jpg","wb")as f:
            f.write(img.content)
            f.close()
            print("下载第"+str(i))
    except:
        i=i-1
 楼主| 学海AoA无涯 发表于 2020-8-12 13:18
fanvalen 发表于 2020-8-12 12:55
我也写过这网站的py当时没写这么复杂
就是req和re库 提取一下网页的数字,和有多少张图片,直接遍历就完 ...

您这个只是下载一个图集的图片嘛???我昨晚又改了一下,可以按照他的分类下载,还有自动翻页,写完我就跑着中国,睡觉了,今早一看下了30+页,似乎速度有点慢
tea456 发表于 2020-8-12 13:43
  爬虫是搜索引擎的基本原理
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 17:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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