当前位置: 首页 > ds >正文

图片网站源码_Python爬虫入门,煎蛋网XXOO图片抓取!

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

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

fd4d258ed0eae852398ef4f0febae895.png

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 requests
import time

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

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

2. 分析数据

Python资源共享群:484031800

程序获取到数据之后就可以对数据进行处理了,编写一个 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()  # 继续调用上面的网页源码分析流程

551031d64e1ec991b9a525847bae0fab.png
http://www.xdnf.cn/news/11999.html

相关文章:

  • 【Netlink】学习笔记与实践
  • 怎么领取腾讯云优惠券和怎么使用腾讯云优惠券购买产品?
  • PyQt5高级界面控件之QWebEngineView(十三)
  • 疑似流氓软件? 价值4000万的过滤软件绿坝分析报告
  • android开发之双击退出程序
  • 百度seo排名点击器app_百度SEO优化和百度竞价优缺点 - 百度整站排名
  • 二分查找法———(c语言)
  • 火车头采集鹿图社整站采集规则-采集文章图片网盘地址!
  • 使用chkrootkit对系统进行rootkit扫描
  • H.264编码格式和视频编码的一些基本概念
  • 电脑报合订本_1998年电脑报合订本截图回忆二
  • Java_画图软件
  • 《2020年AI、CV、NLP顶会最全时间表!》
  • HTML5锚点教程
  • 友情链接常用代码
  • 最短路径课程设计(安阳旅游导航系统)C语言完整代码
  • 黑客网站大全!都在这了!速看删了真的就没了
  • 青龙面板-快手极速版(每天3块脚本)(废-已不能使用)
  • editplus注册码
  • SAP增强 和VA01相关增强点介绍
  • 土匪头头
  • 智能家居装修怎么布线?智能家居网络与开关插座布置
  • 2021年中国研究生数学建模竞赛C题——帕金森病的脑深部电刺激治疗建模研究
  • Dynamic-Programming(动态规划)最细解题思路+代码详解,顺利拿到OPPO公司Android架构师offer
  • LIBRARY_PATH和LD_LIBRARY_PATH区别
  • C语言详解:函数递归专题
  • Https中间人攻击
  • MeeGo开发常用测试工具及流程
  • ORACLE数据库管理员的职责
  • MySql下载及安装教程