zoukankan      html  css  js  c++  java
  • python学习1

    今天开始了新的学习,python,了解了request请求的四个步骤分别是

    -指定url
    -发起请求
    -获取响应数据
    -持久化存储

    同时又了解了UA检测以及UA伪装的意思:
    #UA检测:门户网站的服务器会检测对应请求的载体身份表示,检测其是网络爬虫还是一个浏览器
    #UA伪装:网络爬虫可以将自己的头部修改成和浏览器一样的,以使门户网站将自己的请求误认为浏览器的请求
    下面是两个案例,一个是爬取搜狗搜索页面的内容信息的,另一个是制作一个简单的网页采集器的小测试。
    1.爬取搜狗首页
    #requst模块
    #需求:爬取搜狗首页页面是数据
    import requests
    #下面这句话相当于主函数
    if __name__ == '__main__':
        #step.1 指定url
        url = 'https://www.sogou.com/'
        #step.2 发起请求,get方法会返回一个响应对象
        response = requests.get(url=url)
        #step.3 获取响应数据.text返回的是字符串形式的响应数据
        page_text = response.text
        print(page_text)
        #step.4持久化存储,将爬取到的数据存储到sogou.html中,设置编码utf8,起名fp,
        with open('./sogou.html','w',encoding='utf-8') as fp:
            #在fp中写入page_text
            fp.write(page_text)
        print('爬取结束!!!!!')
    搜狗首页

    2.制作简单网页采集器

    #UA检测:门户网站的服务器会检测对应请求的载体身份表示,检测其是网络爬虫还是一个浏览器
    #UA伪装:网络爬虫可以将自己的头部修改成和浏览器一样的,以使门户网站将自己的请求误认为浏览器的请求
    import requests
    if __name__ == '__main__':
        #UA伪装,将对应的UserAgent封装到一个字典里
        headers={
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.54'
        }
        #传递参数时,此处的?保留不保留都可以
        #url = 'https://www.baidu.com/s'
        url = 'https://www.sogou.com/web'
    
        #处理url携带的参数:封装到字典中
        kw = input('enter a word:')
        param = {
            'query':kw
        }
        #对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数
        response = requests.get(url=url,params=param,headers=headers)
    
        page_text = response.text
        fileName = kw+'.html'
        with open(fileName,'w',encoding='utf-8') as fp:
            fp.write(page_text)
        print(fileName,'保存成功!!!')
    简单网页采集器

    在这两个小demo中,我发现了不同的搜索下,同一个程序可能爬取的东西就不同,因为各个不同的搜索软件对待爬虫的机制不同。

    各个搜索软件中使用的搜索参数也有所差异,如百度使用wd,而搜狗使用query

     
     
  • 相关阅读:
    Java开发中的23种设计模式详解
    Zookeeper基本知识
    Zookeeper命令
    ZooKeeper原理及使用
    几种java通信(rmi,http,hessian,webservice)协议性能比较
    linux 查看系统信息命令
    Zookeeper安装和配置
    Hive 接口介绍(Web UI/JDBC)
    窗口标志-外观
    pyqt5-QWidget-窗口状态(最大化最小化等)
  • 原文地址:https://www.cnblogs.com/wfswf/p/14929239.html
Copyright © 2011-2022 走看看