欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020-11-14

程序员文章站 2022-07-14 16:59:43
...

requests模块:

介绍:
python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。

作用:
模拟浏览器发请求。

Requests使用流程:
1、指定URL(要访问的地址)
2、发起请求
3、获取响应数据
4、持久化存储

**下面进行代码分析:
**

UA伪装:

对付反爬机制
通俗来说访问页面都会带有一个标识,比如说安卓 IOS 电脑版,如果没有UA伪装的标识,服务器就会发现这是一个爬虫程序,从而禁止访问

案例:

爬取搜狗搜索手动输入搜索的信息

①进行UA伪装

 headers = {
       'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0'
    } 

②指定URL

url = 'https://www.sogou.com/web?'

url从何而来?
1、随意搜索一个词语
2020-11-14
2、进入搜索结果页面之后,可以看到地址栏上面的一串地址,“?”后方就是我们输入的信息,故提取包含?之前的所有地址,此地址+要查询的内容,为查询的结果
2020-11-14
③发起请求

    kw = input('enter a word:')  //要查询的内容
    param = {
        'query':kw
    }
    respones = requests.get(url=url,params=param,headers = headers) 

④获取相应数据

page_text = respones.text //响应的数据以文本的形式存储到临时寄存器

⑤持久化存储
将获取的内容保存到本地的文件下

    fileName = kw+'.html'
    with open(fileName,'w',encoding='utf-8') as fp:
        fp.write(page_text)

完整代码如下:

# -*- coding: utf-8  -*-
import requests

if __name__ == "__main__":
    #UA伪装  
    headers = {
       'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0'
    } 
    url = 'https://www.sogou.com/web?'
    kw = input('enter a word:')
    param = {
        'query':kw
    }
    respones = requests.get(url=url,params=param,headers = headers)
    page_text = respones.text
    fileName = kw+'.html'
    with open(fileName,'w',encoding='utf-8') as fp:
        fp.write(page_text)
    print(fileName,'success')


第一次写博客,不好的地方请指正,谢谢

推荐阅读