做旅游的网站 优帮云,网站开发协议模版,建设网站的运行费包括什么地方,淮北论坛官网app今天写一个爬虫爱好者特别喜欢的网站煎蛋网 http://jandan.net/ooxx #xff0c;这个网站其实还是有点意思的#xff0c;网站很多人写了N多的教程了#xff0c;各种方式的都有#xff0c;当然网站本身在爬虫爱好者的不断进攻下#xff0c;也在不断的完善#xff0c;反爬措… 今天写一个爬虫爱好者特别喜欢的网站煎蛋网 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 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,//*[idcomments]/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, //*[idcomments]//a[classprevious-comment-page])))next.click()return get_content() # 继续调用上面的网页源码分析流程