无聊的爬虫 爬取煎蛋网的妹子图

       周末无聊没事做写了个小爬虫
       爬虫爬取的页面通常有两种一种是不存在动态加载数据的页面,另外一种是存在动态加载页面的网页,对于第一种爬取比较简单,一般得到html的源码解析到相应的内容即可,而对于动态加载数据页面的爬取则要分析网页提交的数据,对网站进行逆向爬虫工程对于没有网络基础的人来说还是有一定的难度,另外一种傻瓜方法就是通过火狐或者谷歌提供的浏览器驱动模拟加载数据得到最终的页面源码也能爬取到相应的数据缺点是速度比较慢。
       今天就介绍一个简单的方法爬取煎蛋妹子图,下载chromedriver.exe用于模拟加载动态数据。下面上代码

#!/usr/bin/python
#coding=utf-8
#date 2018.07.08
import urllib
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
# 通过webdriver得到动态页面的html源码
def getPage(url):
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    driver = webdriver.Chrome(chrome_options=chrome_options)
    driver.get(url)
    return driver.page_source
# 下载保存图片
def downLoadimg(html):
    sup = BeautifulSoup(html,'html.parser')
    for imgurl in sup.find_all(class_='view_img_link'):
        img = 'http:'+ imgurl['href']
        # print(img)
        filename = img.split('/')[-1]
        print(img.split('/')[-1])
        urllib.urlretrieve(img, 'D:/meizi/' + filename)

if __name__=="__mian__":
    base_url = "https://jandan.net/ooxx/page-"
    baseurl = "#comments"
    # 定义下载页数
    for i in range(50,0,-1):
        url = base_url+str(i)+baseurl
        print(url)
        try:
            html = getPage(url)
        except TimeoutException as t:
            print("File download:"+str(i))
        downLoadimg(html)

--headless无头模式,在写本文的时已经不支持PHantomjs了如果使用会报错。
BeautifulSoup解析html自己下去脑补。

由于图片劲爆自己下码爬取
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,040评论 3 119
  • 反思 大7项 牢记苦难,充满敬畏,今日事今日毕,丝毫不可懈怠。 生活无心工作无心,做个有心人。 尽己所能满足被鼓励...
    滕公子实习录阅读 876评论 0 0
  • 你走后,我开始用自己最讨厌的生活方式生活着. 每天都在想你,所以梦里总寻你. 夏季未末,秋叶未落,你却已经离我而去...
    培姐姐阅读 1,235评论 0 2