[python 爬虫]用selenium抓取500px上的图片

本来打算写一个可以查找任何关键字的图片抓取,但是我发现有一些问题,可能是我网速问题,也可能是代码的问题,代码如下

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib.request

print("请输入你的500px账号")
username="***********"
print("请输入你的500px账号的密码")
password="*************"
driver=webdriver.Chrome()
driver.get("https://500px.com/home")
driver.find_element_by_class_name("static_nav__login").click()
time.sleep(3)
driver.find_element_by_name("email").send_keys(username)
driver.find_element_by_name("password").send_keys(password)
driver.find_element_by_name("password").send_keys(Keys.ENTER)
time.sleep(15)
driver.find_element_by_class_name("query").send_keys("**********")#这里是你填入需要搜索的照片主题
driver.find_element_by_class_name("query").send_keys(Keys.ENTER)
time.sleep(20)
path=r"C:\Users\Administrator\Desktop\Hupu\\" #文件夹随便写的,可自己修改
x = 1
links=driver.find_elements_by_class_name("photo_activity_item__img")
urls=[]
for item in links:
    url=item.get_attribute("src")
    print(url)
    urls.append(url)
for url in urls:
    driver.get(url)
    time.sleep(5)
    src = driver.find_element_by_class_name("photo").get_attribute("src")
    urllib.request.urlretrieve(src, path+'%s.jpg'%x)
    print (u"正在保存第", x, u"张照片", u"  发现共有", len(links), u"张照片")
    print(u"TabError发生在"+x+u"张照片")
    x = x + 1

错误并不是一开始出现的,在抓取了几张或者十几张的时候就会有找不到的报错。因为搜索出来的图片直接获取url并不是最清晰的版本,所以我要先获取点击图片的连接,然后在打开这个链接,再获取清晰版本的图片的url,所以这就比较麻烦,需要页面不断地跳转。于是我发现如果直接获取following的图片就没那么麻烦了。可以看看接下来两张截屏就知道为什么了。

图片1图片1

这是搜索的结果,明显每一张图不是最清晰的版本。

图片2图片2

这是关注的图片,是最清晰的版本。

我下面再贴上抓取following 的图片的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib.request
print("请输入你的500px账号")
username="************"
print("请输入你的500px账号的密码")
password="**********" 
driver=webdriver.Chrome()
driver.get("https://500px.com/home")
driver.find_element_by_class_name("static_nav__login").click()
time.sleep(3)
driver.find_element_by_name("email").send_keys(username)
driver.find_element_by_name("password").send_keys(password)
driver.find_element_by_name("password").send_keys(Keys.ENTER)
time.sleep(15)
driver.
path=r"C:\Users\Administrator\Desktop\Hupu\\"
x = 1
links=driver.find_elements_by_class_name("photo_activity_item__img")
print(links)
urls=[]
for item in links:
    url=item.get_attribute("src")
    print(url)
    urls.append(url)
for url in urls:
    urllib.request.urlretrieve(url, path+'%s.jpg'%x)
    print (u"正在保存第", x, u"张照片", u"  发现共有", len(links), u"张照片")
    x = x + 1

看看结果:

 

图片3图片3

图片4图片4

好吧我会改进一下的。目前还不完善。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值