专栏首页python3Python-爬虫小计

Python-爬虫小计

# -*-coding:utf8-*-
import requests
from bs4 import BeautifulSoup
import time
import os
import urllib
import re
import json


requests.packages.urllib3.disable_warnings()

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
}
proxies = {"http": "**********************",
           "https": "********************8"}
def get_bs(url):
    res = requests.get(url, proxies=proxies,headers=headers,verify=False)
    bs = BeautifulSoup(res.content, 'lxml')
    return bs

def get_first_url():
    first_url_list = []
    page = 1
    for i in range(page):
        root_url =  "https://www.model61.com/mold.php?page={}".format(str(i+1))
        bs = get_bs(root_url)
        for i in  bs.select("dt a"):
            src = i.get('href')
            if "php" in src:
                first_url = "https://www.model61.com/{}".format(src)
                first_url_list.append(first_url)
    return first_url_list

def get_second_url(first_url):
    data = {}
    bs = get_bs(first_url)
    for i in bs.select(".cont-top a"):
        src = i.get('href')
        if "album_s" in src:
            second_url = "https://www.model61.com/{}".format(src)
            #print("second_url",second_url)
            data["second_url"] = second_url

    for j in bs.select(".content_center_date"):
        data["identity"] = j.get_text()
    return data


def get_thred_url(second_url):
    bs = get_bs(second_url)
    for i in  bs.select("dt a"):
        src = i.get('href')
        if "album_list" in src:
            thred_url = "https://www.model61.com/{}".format(src)
            #print("thred_url", thred_url)
            return thred_url


def get_image_list(thred_url):
    image_list = []
    bs = get_bs(thred_url)
    for i in bs.select(".album_list_left a")+bs.select(".album_list_right a"):
        src = i.get('href')
        image_path = "https://www.model61.com/{}".format(src)
        image_list.append(image_path)
        #print("image_path",image_path)
    return image_list

def download_image(image_path,image_url):
    try:
        r = requests.get(image_url, proxies=proxies, headers=headers, verify=False, allow_redirects=False)
        with open(image_path, 'wb') as f:
            f.write(r.content)
    except Exception as e:
        print(e)

def create_face_id(data):
    save_path = r""
    identity = data["identity"]
    ld_list = identity.split("\n")
    identity = ld_list[1] + '_' + ld_list[3][4:] + "_" + ld_list[7][6:] + '_' + ld_list[8][4:]
    print(identity)
    identity_path = os.path.join(save_path, identity)
    if not os.path.exists(identity_path):
        os.mkdir(identity_path)
    for image_url in data['image_list']:
        image_path = os.path.join(identity_path, '{}.jpg'.format(str(int(time.time() * 1000))))
        download_image(image_path, image_url)


if __name__ == '__main__':

    first_url_list = get_first_url()
    for first_url in first_url_list:
        try:
            data = get_second_url(first_url)
            print(data)
            second_url = data['second_url']
            thred_url = get_thred_url(second_url)
            image_list = get_image_list(thred_url)
            data["image_list"] = image_list
            create_face_id(data)
        except Exception as e:
            print(first_url,e)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python自动化开发学习-爬虫3

    讲师的博客:https://www.cnblogs.com/wupeiqi/p/6229292.html 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线...

    py3study
  • URL处理----拼接和编码

            前几天想爬取一个用户网站自动创建每个用户的资料方便注册一些账号,想写一个通用点的爬虫程序爬取只要配置一些爬取规则、爬取深度就ok,避免代码改动,...

    py3study
  • python3 selenium + f

    一、 分析: 抓取动态页面js加载的人民日报里面的新闻详情 https://wap.peopleapp.com/news/1 先打开,然后查看网页源码,发现是...

    py3study
  • 让Python自动下载网站所有文件

    最近维基 jie mi 彻底公开了网站的全部文件,我就在想如何使用 Python 将其下载到本地永久保存,于是就有了这篇文章,写爬虫会遇到很多坑,借鉴他人经验,...

    somenzz
  • Django路由系统学习(四)

    在Django的执行原理中已经学习了django的执行过程,本小节重点来介绍django的路由系统,也就是url的部分,在前面的Django的执行原理中...

    无涯WuYa
  • 少年成名,野路子的奇妙逆袭

    专访尹毅(法师Seay):少年成名,野路子的奇妙逆袭 ? 张爱玲说过,出名要趁早。信息安全行业相对其他行业更是如此,也更能体现出技术比学历重要,高手更能公平的实...

    zhisheng
  • 数据库应用技术系列第一讲 创建数据库和表

    删除数据库快照的方法和删除数据库的方法完全相同,可以使用界面方式删除,也可以使用命令方式删除

    易兮科技
  • GCAC55 13.1 Definition of a digital signature​

    在本章和下一章中,我们将开发数字签名的概念。尽管物理世界签名和数字签名之间有些相似之处,但这两者是完全不同的。我们通过三个示例来激发数字签名。

    安包
  • 会话劫持

      在现实生活中,比如你去市场买菜,在交完钱后你要求先去干一些别的事情,稍候再来拿菜;如果这个时候某个陌生人要求把菜拿走,卖菜的人会把菜给陌生人吗?!当然,这只...

    那一叶随风
  • 不足100行Python代码,一键下载UNPKG项目文件!UNPKG一键下载代码解析

    最近,州的先生打算用饿了么团队开源的Element-UI组件来扩展MrDoc的前端界面。本着怎么简单怎么来、不把简单问题搞复杂的原则,选择脱离webpack和n...

    州的先生

扫码关注云+社区

领取腾讯云代金券