【Python】煎蛋网XXOO图片抓取
今天,我写了一个关于爬虫的帖子,提到了一个网站叫煎蛋网,感觉挺有意思的。作者用的是Selenium工具,还提到了PhantomJS,看来他对爬虫有一定的了解。他提到网站在反爬措施上很到位,所以用Selenium来模拟访问可能是个好方法。代码里导入了很多模块,比如WebDriver、XPATH、LXML、requests等等,这些都是爬虫常用的库。作者还提到了下载图片的部分,用了requests库来获取图片内容,然后保存下来。看起来他不仅爬取了数据,还处理了图片下载,挺全面的。不过,我有点担心的是,他提到的PhantomJS是不是真的能模拟真实的浏览器访问,会不会有风险或者被网站检测到?另外,代码里的下载部分,有没有考虑图片的大小或者格式,会不会影响下载速度?还有,作者提到的群组分享资源,感觉挺实用的,特别是对于刚开始学习Python的人来说,能找到很多学习资料,挺不错的。总的来说,这个帖子内容挺详细的,涵盖了爬虫的整个流程,从分析网站到获取数据,再到处理图片下载,应该对学习爬虫的人来说很有帮助。
今天,我深入探索了一个深受爬虫爱好者推崇的网站——煎蛋网(http://jandan.net/ooxx)。这个网站虽不算平淡无奇,但教程内容丰富多样,涵盖了多种实现方式。网站在经受着爬虫爱好者的持续挑战的同时,也在不断进化完善,反爬虫策略层出不穷。今天,我借助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 requests
import 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.content
except Exception as e:
print(e)
continue
file_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-page
next = 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学习者的聚集地,零基础,进阶,都欢迎

