博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Selenium+PhantomJS 抓取斗图
阅读量:6227 次
发布时间:2019-06-21

本文共 2166 字,大约阅读时间需要 7 分钟。

很久之前写着玩的,最近拿出来还能用,等过段时间优化下

#打开html#获取所有指定的标签中的href#遍历打开所有的href中的url#获取指定的元素#获取图片的url链接#通过函数,将图片保存到本地import timeimport osimport reimport urllib.requestimport uuidfrom selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWait#生成一个文件名字符串def generateFileName():    return str(uuid.uuid1())#根据文件名创建文件def createFileWithFileName(localPathParam,fileName):    totalPath=localPathParam+'\\'+fileName    if not os.path.exists(totalPath):        file=open(totalPath,'a+')        file.close()        return totalPathdef getAndSaveImg(imgUrl,img_name):    if (len(imgUrl) != 0):        fileName = img_name + '.jpg'        fileName = re.sub('[\/:*?"<>|]', '-', fileName)        try:            urllib.request.urlretrieve(imgUrl, createFileWithFileName("C:\\Downloads", fileName))        except:            print("这图我没法下载")#获取每个list的urldef get_list():    lists = driver.find_elements_by_class_name("list-group-item")    for i in range(len(lists)):        list = lists[i].get_attribute("href")        print(list)        # 存入list中        list_info.append(list)if __name__=="__main__":    driver=webdriver.PhantomJS()    driver.set_window_size(1400, 900)    for m in range(28,50):        list_info = []        url="http://www.doutula.com/article/list?page="+str(m+1)        driver.get(url)        #网页加载完成后,等待2s        wait1 = WebDriverWait(driver, 2)        # 获取每个list的url,返回结果存入了list_info        get_list()        #遍历每个url链接,打开        for j in range(len(list_info)):            driver.get(list_info[j])            wait2 = WebDriverWait(driver, 2)            #page=driver.page_source            #print(page)            url_info=driver.find_elements_by_xpath("//div[@class='artile_des']/table/tbody")            for x in range (len(url_info)):                img_url=url_info[x].find_element_by_tag_name("img").get_attribute("src")                img_name = url_info[x].find_element_by_tag_name("img").get_attribute("alt")                print("坐标" + str(m+1)+":"+str(j)+":"+str(x))                print(img_url+"----->"+img_name)                getAndSaveImg(img_url,img_name)            #print('第'+str(j+1)+"行")

 

转载于:https://www.cnblogs.com/lm1107/p/7001343.html

你可能感兴趣的文章
【转】四元数(Quaternion)和旋转
查看>>
使用vue.js常见错误之一
查看>>
centos7配置openldap服务器
查看>>
bzoj 1500 修改区间 splay
查看>>
组合数打表法(1587: 爬楼梯)
查看>>
Symmetric Tree
查看>>
Oracle用户管理
查看>>
关于网络爬取(爬虫)01
查看>>
python re模块findall()详解
查看>>
MSTest
查看>>
java 给任务传递参数
查看>>
oracle之 反向键索引
查看>>
mysql+keepalived 双主热备高可用
查看>>
Hive之 hive的三种使用方式(CLI、HWI、Thrift)
查看>>
DOM基础总结
查看>>
微信公众平台源码
查看>>
Struts2--HelloWord
查看>>
linux C学习笔记05--信号量与共享内存(进程同步)
查看>>
go-mysql,一个易用的mysql接口框架实现
查看>>
POJ3320 Jessica's Reading Problem【尺取法】
查看>>