爬虫系列,(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 链表排序最优算法_链表算法题

    链表排序最优算法_链表算法题链表排序算法总结概述问题描述:给定一个链表,请将这个链表升序排列。节点定义:structListNode{intval;ListNode*next;ListNode(intx):val(x),next(NULL){}};1链表插入排序题目描述:Leetcode0147链表进行插入排序分析因为头结点可能会改变,因此需要设置一个虚拟头结点dummy。我们从前向后遍历整个链表,假设当前考察节点为p,我们需要从

    2022年10月10日
    3
  • j2EE是什么_J2EE全称

    j2EE是什么_J2EE全称本文简单的介绍了一下J2EE的一些基本知识,下次我们将继续学习J2EE的架构以及API等其他知识。也许我们现在对这些东西都不是很熟悉,但是随着我们的学习深入,这些东西都会理解的。

    2022年10月11日
    2
  • 软件测试面试题(含答案)[通俗易懂]

    软件测试面试题(含答案)[通俗易懂]软件测试面试题(含答案)

    2022年6月9日
    32
  • goland 2021.11.4 激活码-激活码分享

    (goland 2021.11.4 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~23LNPMIJZT-eyJsaWNlb…

    2022年3月29日
    50
  • 使用AjaxFileUpload.js实现文件异步上�

    使用AjaxFileUpload.js实现文件异步上�

    2021年12月9日
    50
  • 0xc0000225无法进系统_win7系统出现0xc0000225无法进入系统的解决方法「建议收藏」

    0xc0000225无法进系统_win7系统出现0xc0000225无法进入系统的解决方法「建议收藏」无论谁在使用电脑的时候都可能会发现出现0xc0000225无法进入系统的问题,出现0xc0000225无法进入系统让用户们很苦恼,这是怎么回事呢,出现0xc0000225无法进入系统有什么简便的处理方式呢,其实只要依照 第一步、重启计算机,开机长按F8进入安全模式; 第二步、点击开始,打开运行菜单项,运行cmd命令;很容易就能搞定了,下面就给大家讲解一下出现0xc0000225无法进入系统的快速处…

    2022年6月26日
    69

发表回复

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

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