IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 爬虫requests-html框架练手项目(一) -> 正文阅读

[Python知识库]爬虫requests-html框架练手项目(一)

爬虫requests-html框架练手项目(一)

爬虫框架:Requests-html
功能:简易化ie浏览器下载图片

# -*- coding: utf-8 -*-
# @Author  : KongDeXing
# @Time    : 2022/1/7 9:08
# @Function: Data_Analysis
import random
from requests_html import HTMLSession, HTML, AsyncHTMLSession

class BenXiTest:
    def __init__(self, url):
        self.start_url = url
        self.session = HTMLSession()  # 实例化session
        self.aSession = AsyncHTMLSession()  # 实例化异步session
        users = {  # 可以在发送请求的时候更换user-agent
            1: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
            2: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
            3: 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
            4: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
            5: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
        }
        ur1 = random.sample(users.keys(), 1)
        self.headers = "users" + str(ur1)

    def get_response(self):
        """获取响应,并返回requests_html中的HTML对象"""
        start_url = self.start_url
        r = self.session.get(start_url, headers={'user-agent': self.headers})
        print("网页状态", r)
        return r.html

    # 清洗数据(提取数据)
    def get_data(self):
        """使用xpath获取数据"""
        html = self.get_response()
        picture_Element = html.find("div  img")

        picture_url_list = []
        for i in picture_Element:
            attrs = i.attrs
            pic_list1 = str(attrs.get("src"))
            pic_list2 = str(attrs.get('data-src'))
            if "https://" in pic_list1:
                picture_url_list.append(pic_list1)
            if "https://" in pic_list2:
                picture_url_list.append(pic_list2)
        return picture_url_list

    def download_picture(self,picture_url_list):
        pic_path = input("请输入保存路径:")
        count = 0
        for url in picture_url_list:
            r = self.session.get(url, headers={'user-agent': self.headers})
            print("网页状态", r)
            data =  r.content
            with open(pic_path+str(count)+".png","wb") as f:
                f.write(data)
            count += 1
        print("图片保存成功!!")

if __name__ == '__main__':
    关键词 = input("请输入搜索关键词:")
    url = "https://cn.bing.com/images/search?q="+关键词+"&form=HDRSC2&first=1&tsc=ImageBasicHover"
    test = BenXiTest(url)
    pinture_url_list = test.get_data()
    test.download_picture(pinture_url_list)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 13:57:17  更:2022-01-08 13:57:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:18:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码