python爬虫基本四步骤+简易网页采集器

网络请求模块:urllib模块(比较复杂)、requests模块

一、requests模块:

python中原生的一款基于网络请求的模块,功能强大、简单便捷、效率极高。
1、作用:模拟浏览器发请求
2、如何使用(编码流程):

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

3、环境安装:pip install requests
4、实战编码:

  • 需求:爬取搜狗首页页面的数据
  • 代码:
import requests
if __name__=="__main__":
    #step1:指定url
    url='https://www.sogou.com/'
    #step2:发起请求
    #get方法会返回一个响应对象
    response=requests.get(url=url)
    #step3:获取响应数据,text返回的是字符串形式的响应数据
    page_text=response.text
    print(page_text)
    #step 4:持久化存储
    with open("./sogou.html","w",encoding="utf-8") as fp:
        fp.write(page_text)
    print("爬取数据结束")
  • 结果:

返回的响应数据(部分截图):
在这里插入图片描述

HTML文件打开后界面截图:
在这里插入图片描述

5、实战巩固1:爬取搜狗指定词条的搜索结果界面(简易网页采集器)

  • 代码:
import requests
if __name__=="__main__":
    #UA伪装:将对应的User-Agent封装到一个字典中
    headers={
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/'
    }
    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,"保存成功!!")
  • 关于url

浏览器中检索“北斗导航”的链接是这样的:https://www.sogou.com/web?query=北斗导航&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=23426&sst0=1596357337277&lkt=4%2C1596357313851%2C1596357313956&sugsuv=000E298C716410845E48FF7140CCA041&sugtime=1596357337277
简化一下,是这样的:https://www.sogou.com/web?query=北斗导航
?前面的是浏览器,后面的是我们检索的内容参数。

  • 关于params

这里作为简易网页采集器,检索的内容设置为动态,由用户输入把query存入字典中,query作为key值,value由input输入

  • 关于headers

存放的是User-Agent
获取方法,前一篇笔记中有提到。
学习python爬虫,需要知道什么?

  • UA检测

门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求是不正常的请求(爬虫)。则服务器端很有可能拒绝此次请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值