写在前面

很高兴我这系列的文章写道第18篇了,今天写一个爬虫爱好者特别喜欢的网站煎蛋网http://jandan.net/ooxx,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都有,当然网站本身在爬虫爱好者的不断进攻下,也在不断的完善,反爬措施也很多,今天我用selenium在揍他一波。

整体看上去,煎蛋网的妹子图质量还是可以的,不是很多,但是还蛮有味道的,这可能也是爬虫er,一批一批的奔赴上去的原因。

1. 网站分析

这个网站如果用 selenium 爬取,其实也没什么要分析的,模拟访问就行,导入必备的模块。

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
from lxml import etree
import requestsimport time

我使用的是PhantomJS 去加载浏览器,关于这个PhantomJS,去互联网搜索一下吧,资料大把,会看的很爽的,总之呢,它可以模拟一个真实的浏览器做任何事情,得到你想要的数据。

browser = webdriver.PhantomJS()
browser.set_window_size(1366, 768)  # 这个地方需要设置一下浏览器的尺寸
wait = WebDriverWait(browser,10)
browser.get("http://jandan.net/ooxx")

2. 分析数据

程序获取到数据之后就可以对数据进行处理了,编写一个get_content函数,用来处理网页源码。

def get_content():try:wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="comments"]/ol')))#print("正在爬取{}".format(browser.current_url))page_source = browser.page_source  # 获取网页源码html = etree.HTML(page_source)  # 解析源码imgs = html.xpath("//li[contains(@id,'comment')]//img/@src")  # 匹配图片download(imgs)except Exception as e:print("错误")print(e)finally:browser.close()

图片获取到之后,在上面的代码中,注意有一个地方调用了一个 download函数,这个函数就是用来下载图片的


def download(imgs):path = "./xxoo/{}"  # 路径我写死了for img in imgs:try:res = requests.get(img)content = res.contentexcept Exception as e:print(e)continuefile_name = img.split("/")[-1] # 获取文件名with open(path.format(file_name),"wb") as f:f.write(content)print(file_name,"成功下载文件")time.sleep(0.3)# 循环下载完毕,进行翻页操作 previous-comment-pagenext = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="comments"]//a[@class="previous-comment-page"]')))next.click()return get_content()  # 继续调用上面的网页源码分析流程

OK,运行一下。


转载于:https://www.cnblogs.com/happymeng/p/10220923.html

Python爬虫入门教程 18-100 煎蛋网XXOO图片抓取相关推荐

  1. Python爬虫入门教程【15】:煎蛋网XXOO图片抓取

    今天写一个爬虫爱好者特别喜欢的网站煎蛋网http://jandan.net/ooxx,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都有,当然网站本身在爬虫爱好者的不断进攻下,也在 ...

  2. Python爬虫入门教程,突破煎蛋网反爬措施,妹子图批量抓取!

    今天写一个爬虫爱好者特别喜欢的网站煎蛋网 ,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都有,当然网站本身在爬虫爱好者的不断进攻下,也在不断的完善,反爬措施也很多,今天我用 se ...

  3. Python爬虫入门【15】:煎蛋网XXOO图片抓取

    今天写一个爬虫爱好者特别喜欢的网站煎蛋网http://jandan.net/ooxx,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都有,当然网站本身在爬虫爱好者的不断进攻下,也在 ...

  4. Python爬虫入门,煎蛋网XXOO图片抓取!

    今天写一个爬虫爱好者特别喜欢的网站煎蛋网 http://jandan.net/ooxx ,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都有,当然网站本身在爬虫爱好者的不断进攻下, ...

  5. 【Python】煎蛋网XXOO图片抓取

    今天写一个爬虫爱好者特别喜欢的网站煎蛋网http://jandan.net/ooxx,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都有,当然网站本身在爬虫爱好者的不断进攻下,也在 ...

  6. Python爬虫入门教程 24-100 微医挂号网医生数据抓取

    1. 微医挂号网医生数据写在前面 今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为后面的 ...

  7. Python爬虫入门学习例子之煎蛋网(福利哦)

    初学Python爬虫,学习资料是这篇博客:Python爬虫入门教程 经过前边两个例子(糗事百科爬虫和百度贴吧爬虫)的学习,我自己写了一个练习的例子:爬煎蛋网的妹子图,福利哦(*^__^*) #煎蛋网爬 ...

  8. Python爬虫入门【18】: 36氪(36kr)数据抓取 scrapy

    1. 36氪(36kr)数据----写在前面 今天抓取一个新闻媒体,36kr的文章内容,也是为后面的数据分析做相应的准备 36kr 让一部分人先看到未来,而你今天要做的事情确实要抓取它的过去. 网址 ...

  9. python爬虫和医学数据_Python爬虫入门教程 24-100 微医挂号网医生数据抓取

    1. 微医挂号网医生数据写在前面 今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为后面的 ...

最新文章

  1. python读书报告_读书笔记 Python编程入门
  2. 【转载】设计模式_六大原则(学习)
  3. 3.产品成本在完工和在制产品间分配
  4. ffmpeg使用总结
  5. mysql编码无效_mysql的严格模式与无效字符编码问题
  6. 【虚拟化】docker创建mysql镜像,docker内部操作mysql
  7. fastdfs 吗 支持windows_主流开源文件存储系统-fastdfs是否支持windows?你可以选择minio...
  8. mysql 转换编码
  9. mysql 报错从 新安装
  10. iPhone 5用户们,苹果又喊你更新了,不然可能会变砖!
  11. centos 6.8 挂载NTFS移动硬盘
  12. 【Apple苹果设备刷机】ipad已停用,iTunes无法联系网络等问题
  13. trnsys and matlab 联合仿真常见错误解决方案
  14. java与javaw运行jar程序
  15. 3分钟教会你用excel做多层饼图
  16. 数据离散化之chimerge算法的实现(python版)(以莺尾花数据为例)
  17. 【第39期】打破“打工人”魔咒,RPA 来狙击!
  18. CF39C Moon Craters
  19. 魔兽世界n 服服务器维护时段,wowN服新服务器开放时间_魔兽世界N服新服务器发布内容_快吧游戏...
  20. 颜色十六进制代码表 | HTML Color Codes Table

热门文章

  1. Linux学习记录-7
  2. 2017-11-17 为Python添加中文关键字
  3. [USACO4.2]Drainage Ditches
  4. Hyper-V 2016:支持guest操作系统
  5. 1038. Recover the Smallest Number (30)
  6. 20145237第六周学习总结
  7. 逆天Kali带你游遍大江南北~安全之前人铺路!
  8. android杀掉进程顺序
  9. java-01 JAVA三大版本比较JDK、JRE、JVM 的关系
  10. JavaScript中十个一步拷贝数组的方法