爬虫系列,(3),达盖尔图片抓取

爬虫系列,(3),达盖尔图片抓取importreimportrequestsfrombs4importBeautifulSoup#第一步得到代理defproxy():withopen(r’ip_proxies\有效ip.txt’,’r’,encoding=’utf-8′)asf:r=f.readlines()foripinr:…

大家好,又见面了,我是你们的朋友全栈君。

import re
import requests
from bs4 import BeautifulSoup


# 第一步得到代理
def proxy():
    with open(r'ip_proxies\有效ip.txt', 'r', encoding='utf-8') as f:
        r = f.readlines()
        for ip in r:
            try:
                proxies = eval(ip)
                if requests.get('http://t66y.com/index.php', proxies=proxies, timeout=2).status_code == 200:
                    return proxies
            except:
                pass


proxies = proxy()
print(proxies)

# 第二步得到网页链接池
url = 'http://t66y.com/index.php'
url2 = 'http://t66y.com/thread0806.php?fid=16'
headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,\
image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
           'Accept-Encoding': 'gzip, deflate',
           'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7',
           'Cache-Control': 'max-age=0',
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
session = requests.session()
url_response = session.get(
    url, headers=headers, proxies=proxies, timeout=3)
url_response2 = session.get(url2, timeout=3, proxies=proxies)
data = url_response2.content.decode('gbk', 'ignore')
soup = BeautifulSoup(data, features='lxml')
url_list = soup.find_all(href=re.compile("htm_data"))
url_set = set()
for i in url_list:
    try:
        url_final = 'http://t66y.com/'+i['href']
        url_set.add(url_final)
    except:
        pass


# 第三步抓取当前页的图片
n = 1


def get_jpg(url):
    global n
    response = requests.get(url, headers=headers, proxies=proxies)
    print(response.status_code)
    data = response.content.decode('gb2312', 'ignore')
    soup = BeautifulSoup(data, features='lxml')
    inputs = soup('input')
    for i in inputs:
        try:
            url_jpg = i['data-src']
            jpg = requests.get(url_jpg, headers=headers, timeout=5)
            print('第{}张'.format(n))
            jpg_content = jpg.content
            with open(r'Caoliu photo\{}.jpg'.format(n), 'wb') as f:
                f.write(jpg_content)
                print('完成')
                n = n+1
        except Exception as a:
            print(a)


if __name__ == "__main__":
    url_final_list = list(url_set)
    for i in url_final_list:
        print(i)
        get_jpg(i)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152625.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月24日 下午12:36
下一篇 2022年6月24日 下午12:36


相关推荐

  • SQL Server 2012 数据库备份还原「建议收藏」

    SQL Server 2012 数据库备份还原「建议收藏」文章目录1.数据库备份2.创建备份设备使用SSMS工具创建备份设备使用SQL方式创建备份设备3.完整备份与还原使用SSMS工具完整备份与还原使用SQL方式完整备份与还原4.差异备份与还原使用SSMS工具差异备份与还原使用SQL方式差异备份与还原5.事务日志备份与还原使用SSMS工具事务日志备份与还原使用SQL方式事务日志备份与还原1.数据库备份    数据库备份,即从SQLServer数据…

    2022年5月14日
    69
  • R语言-提取字符长度nchar函数与length函数「建议收藏」

    R语言-提取字符长度nchar函数与length函数「建议收藏」R语言中nchar函数:主要使用来返回字符长度而length函数:则是用来返回字符数量#Gettingthelengthofastringx=”John”y=c(“Jim”,”Tony”,”kavry”)nchar(x)#returnthenumberofcharactersinthestringnchar(y)#ifavector,return

    2022年5月29日
    41
  • 团队作战和单兵作战

    团队作战和单兵作战

    2021年7月28日
    153
  • vue相比jquery_angular和vue哪个厉害

    vue相比jquery_angular和vue哪个厉害jQuery到Vue的转变是一个思想的转变,将原有的直接操作dom的思想转变到操作数据上前言:很多人说jquey和vue没有什么可比的,应该和Angular,React来比吧,我到觉得他们倒没有多大的可比性,都是基于mvvm思想设计的框架,无非就是实现的方式不一样,在不同场景下性能上会有一些差异。然而从jquery到vue或者说是到mvvm的转变则是一个思想想的转变,是将原有的直接操作dom的思想转变到操作数据上去,难道不是一个根本性的改变吗?jquery介绍:想必大家都用过jquery吧,这个曾经.

    2022年10月15日
    4
  • JAVA不可变类(immutable)机制与String的不可变性

    JAVA不可变类(immutable)机制与String的不可变性JAVA不可变类(immutable)机制与String的不可变性

    2022年4月23日
    58
  • pandas apply() 函数用法

    pandas apply() 函数用法理解pandas的函数,要对函数式编程有一定的概念和理解。函数式编程,包括函数式编程思维,当然是一个很复杂的话题,但对今天介绍的apply()函数,只需要理解:函数作为一个对象,能作为参数传递给其它函数,并且能作为函数的返回值。函数作为对象能带来代码风格巨大的改变。举一个例子,有一个包含1到10的list,从其中找出能被3整除的数字。用传统的方法:defcan_divi…

    2022年6月22日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号