首页 编程教程正文

半次元下载原图

piaodoo 编程教程 2020-02-22 22:01:31 850 0 python教程

本文来源吾爱破解论坛

本帖最后由 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 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7325.html

搜索