今天写一个爬虫爱好者特别喜欢的网站煎蛋网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")
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

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()  # 继续调用上面的网页源码分析流程
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

Python爬虫入门【15】:煎蛋网XXOO图片抓取相关推荐

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

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

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

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

  3. Python爬虫入门教程 18-100 煎蛋网XXOO图片抓取

    写在前面 很高兴我这系列的文章写道第18篇了,今天写一个爬虫爱好者特别喜欢的网站煎蛋网http://jandan.net/ooxx,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都 ...

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

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

  5. Python爬虫入门教程 18-100 煎x网XO图片抓取

    1. 煎x网XO-写在前面 本文涉及的网址请查看评论区 很高兴我这系列的文章写道第18篇了,今天写一个爬虫爱好者特别喜欢的网站煎x网 敏感站点 ,这个网站其实还是有点意思的,网站很多人写了N多的教程了 ...

  6. Python爬虫入门【7】: 蜂鸟网图片爬取之二

    蜂鸟网图片–简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度. 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文档 ...

  7. Python爬虫入门教程石家庄链家租房数据抓取

    1. 写在前面 这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材. 我们需要爬取的网址为:https://sjz.lianjia.com/zufang/ 2. 分析 ...

  8. Python爬虫入门教程 31-100 36氪(36kr)数据抓取 scrapy

    1. 36氪(36kr)数据----写在前面 今天抓取一个新闻媒体,36kr的文章内容,也是为后面的数据分析做相应的准备的,预计在12月底,爬虫大概写到50篇案例的时刻,将会迎来一个新的内容,系统的数 ...

  9. Python 爬虫 + 人脸检测 —— 知乎高颜值图片抓取

    1 数据源 知乎 话题『美女』下所有问题中回答所出现的图片 2 抓取工具 Python 3,并使用第三方库 Requests.lxml.AipFace,代码共 100 + 行 3 必要环境 Mac / ...

最新文章

  1. 成功解决‘pip‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  2. springMVC3学习--ModelAndView对象(转)
  3. 2018明星学术公众号TOP 10重磅发布,PaperWeekly再度入选
  4. python get argument_Python-Web框架-get_argument方法
  5. 理解进程调度时机跟踪分析进程调度与进程切换的过程
  6. [蓝桥杯][算法提高VIP]盾神与积木游戏(贪心)
  7. Appium python adb命令
  8. 2017.3.19 约数个数和 失败总结
  9. linux服务器系统内核参数优化
  10. 黑马程序员:java基础学习——数组
  11. 你的努力,是否符合你的预期?
  12. CodeForces 746D Green and Black Tea 有坑
  13. 生产环境一次诡异的空指针问题,反转了4次
  14. QQ目录下各文件用途不完全揭密
  15. Reac版本的Ant Design树形控件的使用、搜索关键字标红、只显示搜索匹配中的数据
  16. php源码dede,php网站管理系统 DedeCMS v5.7 SP2 UTF8 20180109正式版
  17. vue项目兼容IE浏览器,判断IE11以下,则提示浏览器版本过低,更新浏览器页面
  18. pr2020lut导入_pr lut预设怎么安装-PR下导入lut预设的方法 - 河东软件园
  19. 用ironic安装openstack的原理
  20. mysql所选路径已经存在_「mysql第二次安装不了」mysql安装失败怎么清理干净?

热门文章

  1. matlab获取href,用 MATLAB 抓取网页数据小程序
  2. 交换机的工作原理及作用
  3. 二月主题读书整理——元技能系列
  4. 【一文读懂】Mysql索引原理之环环相扣
  5. 滴滴十大技术方向开源项目出炉
  6. 删除桌面右键菜单AMD Catalyst Control Center选项的方法
  7. Qt的LGPL协议是否意味着可以自由用QT开发商业软件?
  8. 电商网站秒杀与抢购的系统架构
  9. D3D描绘四边形的四种方法之DrawPrimitive、DrawIndexedPrimitive、DrawPrimitiveUP、DrawIndexedPrimitiveUP
  10. pms输变电状态监测_智能电网输变电设备综合状态监测系统的设计与实现