本文来源吾爱破解论坛
本帖最后由 lijiayi0719 于 2018-12-17 16:44 编辑
之前发过一次,然后半次元更新以后不能用了。。。
之前的帖子:https://www.52pojie.cn/thread-780405-1-1.html
以前图片很简单的放在了源码里,比较方便爬取,更新以后要等网页js运行完才能爬。
因此该程序需要用到selenium+chromedriver
把用户名密码改成自己的,然后运行后输入验证码,再像之前一样输入网址就可以了。
很简单的一个爬虫小程序,可以当作爬虫的小练习。
代码:
[Python] 纯文本查看 复制代码
import requests import re from selenium import webdriver import time # 改为你的半次元账号密码 # 一些网页需要登录查看 EMAIL = "email" PASSWORD = "password" #可获取图片的半次元网址格式 zz1 = r'https://bcy.net/item/detail/(.+?)' #图片地址格式 zz2 = r'<div class="img-wrap-inner"><img src="(https://.*?)/w650" />' driver = webdriver.Chrome() driver.get("https://bcy.net/login") driver.find_element_by_xpath("//a[@href='javascript:void(0)']").click() elem_name=driver.find_element_by_id('email') elem_pwd=driver.find_element_by_id('password') elem_name.send_keys(EMAIL) elem_pwd.send_keys(PASSWORD) driver.find_element_by_xpath("//input[@class='_btn--long-red mb20']").click() while 1: url=input("请输入要获取原图的半次元网址:(直接输入回车关闭程序)") try: name=re.match(zz1,url).group(0) except: name = None if url=='': break elif name==None: print("网址格式错误,请重新输入:") continue driver.get(url) time.sleep(3) pageSorce = driver.page_source print("当前网址图片地址为:") html = re.findall(zz2,pageSorce,re.S) i=1 for line in html: print(i,':',line,"\n") i+=1 num=input("输入图片序号将图片下载至本地,'0'为全部下载,'n'退出下载") while num!='n': if num=='0': j=1 for line in html: r = requests.get(html[j-1]) with open(name[1]+str(j)+".jpg","wb") as f: f.write(r.content) print(j,"号图片下载完成!") j+=1 print() break elif int(num)<=i: r = requests.get(html[int(num)-1]) with open(name[1]+num+".jpg","wb") as code: code.write(r.content) print(num,"号图片下载完成!","\n") else : print("输入数字错误,请重新输入") num=input("输入图片序号继续下载,'n'退出下载") print() driver.quit()
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇:
- 下一篇: 春节红包第三题解题记录