美文网首页
【美图】杂图_美图吧_百度贴吧 爬虫

【美图】杂图_美图吧_百度贴吧 爬虫

作者: NorthCity | 来源:发表于2017-10-02 10:48 被阅读0次

【美图】杂图美图吧_百度贴吧

# coding:utf-8
import requests
from bs4 import BeautifulSoup
import os , random
import urllib2
import sys , MySQLdb
import re
from PIL import Image
import imagehash
import uuid
from io import BytesIO

# 数据库设置
MYSQL_HOST = 'localhost'
MYSQL_DBNAME = 'ip'
MYSQL_USER = 'mark'
MYSQL_PASSWD = '1234'
MYSQL_PORT = 3306
image_hash_set = set()

# 此处修改伪造的头字段,
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11'}


def getProxy ( conn , cur , columns_data ):
    flag = random.choice ( columns_data )
    sql = "select proxy_ip,proxy_port from proxy where id =%d" % (flag)
    cur.execute ( sql )
    proxy = {}
    for each in cur.fetchall ():
        proxy[ 'http' ] = "http://%s:%s" % (each[ 0 ] , each[ 1 ])
    try:
        requests.get ( 'https://movie.douban.com/top250' , proxies=proxy )
    except:
        print "proxy error"
        getProxy ( conn , cur , columns_data )
    else:
        print "proxy success"
        return proxy


def get_request ( url , headers , conn , cur , columns_data ):
    proxy = getProxy ( conn , cur , columns_data )
    proxy_s = urllib2.ProxyHandler ( proxy )
    opener = urllib2.build_opener ( proxy_s )
    urllib2.install_opener ( opener )
    req = urllib2.Request ( url , headers=headers )
    r = urllib2.urlopen ( req )
    return r.read ()


def getImage ( url , headers , conn , cur , columns_data ):
    for each in range ( 1 , 7 ):
        real_url = "%s%d" % (url , each)
        html = get_request(url,headers,conn,cur,columns_data)
        soup = BeautifulSoup(html,'html.parser')
        for each in soup.findAll('div',attrs = {'id':re.compile('^post_content_(\d+)')}):
            for i in each.findAll('img',class_='BDE_Image'):
                src =  i.get('src')
                name = uuid.uuid1()
                response = requests.get ( src ).content
                image = Image.open ( BytesIO ( response) )
                imagehash_tmp = imagehash.average_hash(image)
                if imagehash_tmp not in image_hash_set:
                    print "%s\t%s.jpg" %(src,name)
                    os.chdir('C:\Users\NorthCity\Desktop\spider\image')
                    image.save ( "%s.jpg" %(name))


if __name__ == "__main__":
    conn = MySQLdb.connect ( host=MYSQL_HOST , user=MYSQL_USER , passwd=MYSQL_PASSWD , db=MYSQL_DBNAME ,
                             port=MYSQL_PORT , charset='utf8' )
    cur = conn.cursor ()
    columns = "select id from proxy"
    cur.execute ( columns )
    columns_data = [ ]
    for each in cur.fetchall ():
        columns_data.append ( each[ 0 ] )
    url = 'https://tieba.baidu.com/p/5033202671?pn='
    getImage (url , headers , conn , cur , columns_data )

相关文章

  • 【美图】杂图_美图吧_百度贴吧 爬虫

    【美图】杂图美图吧_百度贴吧

  • 美拍

    1.美拍是美图旗下产品之一。美图的软件:美图秀秀、美拍、潮自拍、美颜相机、美妆相机、美图贴贴、柚子相机等 2.短板...

  • 第四阶段 爬虫整理

    爬虫概述 爬虫案例 案例1:爬取百度贴吧数据 分析:GET方式爬取数据抓包:设计:实现: 案例2:抓妹子图 分析:...

  • 贴吧引流实战宝典

    继续接上一篇文章学习贴吧引流 1.我们在贴吧发帖尽量发图片贴,不容易被删。但是必须要PS后的图片,用美图秀秀就可以...

  • Python3之百度贴吧小爬虫

    华为贴吧爬虫 程序爬了6000页就被百度封掉,你们回去可以改下贴吧的,比如爬小米吧或者其他娱乐的吧,将页面数改成小...

  • 百度贴吧爬虫

    利用requests、正则表达式和Beautiful爬取贴吧用户名、评论和图片 定义工具类——去除爬取项多余内容 ...

  • 百度贴吧高级爬虫

    最近做了一个完整版的百度贴啊全吧爬虫,过程比较具有代表性,分析过来供大家参考。代码在解禁后后贴吧爬虫查看。 项目结...

  • Python_Scrapy-基础实践

    爬虫实践 获取百度贴吧的内容 以滁州学院吧为例 贴吧地址: 链接的末尾处:&ie=utf-8 表示该连接采用的是u...

  • 倒计时50天——2017/6/29 星期四

    分享美图两张吧,我们美丽的城市!

  • 2020-06-17

    让我们来看看BLACKPINK的美图吧!!! 我爱了!!!

网友评论

      本文标题:【美图】杂图_美图吧_百度贴吧 爬虫

      本文链接:https://www.haomeiwen.com/subject/gaizextx.html