Python爬虫之selenium爬取ROSI图片

Python爬虫之selenium爬取ROSI图片文章目录分析网站链接使用selenium模拟浏览器爬取网页内容、图片建议下载一个谷歌浏览器插件Xpath,在你查找标签时候很好用!!使用os创建新的图片保存路径,你也不想所有图片在一个文件夹下面吧,肯定是一个标题一个文件夹通过图片链接构建图片名使用显示等待,等待图片加载完成,使用pyautogui实现鼠标右键(点击图片)——V(保存图片)——Ctrl+V粘贴(文件路径+’\\’+文件名)——ent…

@ [TOC]

简单构建网站链接

	#构建页面
	nums = [i for i in range(156,500)] 
	#构建url 
	url ='http : //www.mmxyz.net/rosi-{}/'.format(str( num ))

下载一个谷歌浏览器Xpath插件,在你查找标签时候很好用!

	#标题
    title = html.xpath('// div [@ id =“post-header”] / h1 / text()')[0] 
    print(title)
    #图片链接
    hrefs = html.xpath(' // dl [@ class =“gallery-item”] / dt / a / @ href')
    print(hrefs)

使用OS创建新的图片保存路径,你也不想所有图片在一个文件夹下面吧,肯定是一个标题一个文件夹

	#创建每一期图片独有的文件夹
    rosi_dir = 'E:\\ROSI'+'\\'+title
    if not os.path.exists(rosi_dir):
        os.makedirs(rosi_dir)

通过图片链接构建图片名

    for href in hrefs:
        name = href.split('/')[-1]
        pic_name = rosi_dir+'\\'+name

使用显示等待,等待图片加载完成,使用pyautogui实现鼠标右键(点击图片)——V(保存图片)——Ctrl+V粘贴(文件路径+’\’+文件名)——enter(确认)

 		driver.get(href)
        # 设置显式等待,时间为10秒,等待图片加载完成,就结束
        wait = WebDriverWait(driver, 10)
        img = wait.until(EC.visibility_of_element_located((By.TAG_NAME, 'img')))
        
		#鼠标移动到(500,500)位置并右键点击,这个是纯图片链接,位置可以随意一点设置,具体根据你的情况设置
        pyautogui.rightClick(x=500, y=500)
        
        #输入V
        pyautogui.typewrite(['V'])
        
        # 强制等待窗口打开,以免命令冲突,粘贴失败,电脑比较卡,试过很多次才有4,具体时间自己试,最好多设置1S左右
        sleep(4)
        
        #复制文件名加路径到粘贴板
        pyperclip.copy(pic_name)
        # 粘贴
        pyautogui.hotkey('ctrlleft', 'V')
        #等待电脑反应
        sleep(0.1)
        pyautogui.press('enter')
        #等待电脑反应
        sleep(0.2)

上代码

"""
url = http://www.mmxyz.net/rosi-2221/
"""
import os
from lxml import etree
import pyperclip,pyautogui
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 爬取页面
def get_html(url):

    driver.get(url)
    print(type(driver.page_source))
    html = driver.page_source
    html = etree.HTML(html)
    return html
    
#解析页面、标题、图片链接
def parse_html(html):

    #标题
    title = html.xpath('//div[@id="post-header"]/h1/text()')[0]
    print(title)
    #图片链接
    hrefs = html.xpath('//dl[@class="gallery-item"]/dt/a/@href')
    print(hrefs)
	#创建每一期图片独有的文件夹
    rosi_dir = 'E:\\ROSI'+'\\'+title
    if not os.path.exists(rosi_dir):
        os.makedirs(rosi_dir)
	#访问图片链接,保存图片
    for href in hrefs:
        name = href.split('/')[-1]
        pic_name = rosi_dir+'\\'+name
        driver.get(href)

        # 设置显式等待,时间为10秒,等待图片加载完成,就结束
        wait = WebDriverWait(driver, 10)
        img = wait.until(EC.visibility_of_element_located((By.TAG_NAME, 'img')))
        
		#鼠标移动到(500,500)位置并右键点击,这个是纯图片链接,期同期的你需要筛选图片位置,再移动
        pyautogui.rightClick(x=500, y=500)
        
        #输入V
        pyautogui.typewrite(['V'])
        
        # 强制等待窗口打开,以免命令冲突,粘贴失败,试过很多次才有4,具体时间自己试,最好设置大一些
        sleep(4)
        
        #复制文件路径到粘贴板
        pyperclip.copy(pic_name)
        # 粘贴
        pyautogui.hotkey('ctrlleft', 'V')
        sleep(0.1)
        pyautogui.press('enter')
        sleep(0.2)

if __name__ == '__main__':

    driver = webdriver.Chrome()
    #只要你想,所有都能下载
    #创建图片期数列表
    nums = [i for i in range(156,500)]
    for num in nums:
    	#构建url
        url = 'http://www.mmxyz.net/rosi-{}/'.format(str(num))
        html = get_html(url)
        parse_html(html)
        ```

今天的文章Python爬虫之selenium爬取ROSI图片分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12596.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注