网页文章采集器(绝对能使你眼前一亮,通过这篇文章介绍希望你能有所收获)

优采云 发布时间: 2022-02-13 18:18

  网页文章采集器(绝对能使你眼前一亮,通过这篇文章介绍希望你能有所收获)

  本文文章向你展示了如何用Python实现一个网页采集器,内容简洁易懂,一定会让你眼前一亮。希望你能从详细的介绍中有所收获。

  请求模块

  用python封装的基于网络请求的模块。用于模拟浏览器请求。安装:pip install requests

  请求模块的编码过程

  指定网址

  发起请求

  获取对应数据

  永久存储

  # 爬取搜狗首页的页面源码数据

import requests

# 1. 指定url

url = "https://www.sogou.com"

# 2.发送请求 get

response = requests.get(url=url)  # get返回值是Response对象

# 获取响应数据,响应数据在Response对象里

page_text = response.text   # text返回字符串形式的响应数据

# 4.持久化储存

with open("sogou.html","w",encoding='utf-8') as fp:

    fp.write(page_text)

  项目:实现一个简单的网页采集器

  要求:程序根据搜狗输入任意关键字,然后获取该关键字对应的相关整页。

  # 1.指定url,需要让url携带的参数动态化

url = "https://www.sogou.com/web"

# 实现参数动态化,不推荐参数的拼接,参数如果太多就相当麻烦。

# requests模块实现了更为简便的方法

ky = input("enter a key")

params = {

    'query':ky

}

# 将需要的请求参数对应的字典作用到get方法的params参数中,params参数接受一个字典

response = requests.get(url=url,params=params)

page_text = response.text

with open(f"{ky}.html","w",encoding='utf-8') as fp:

    fp.write(page_text)

  以上代码执行后:

  乱码

  数据量级错误

  # 解决乱码

url = "https://www.sogou.com/web"

ky = input("enter a key")

params = {

    'query':ky

}

response = requests.get(url=url,params=params)

# print(response.encoding) 会打印原来response的编码格式

response.encoding = 'utf-8'  # 修改响应数据的编码格式

page_text = response.text

with open(f"{ky}.html","w",encoding='utf-8') as fp:

    fp.write(page_text)

  以上代码执行后:

  收到错误页面(搜狗的反爬机制)

  UA 检测

  防反爬策略:UA伪装请求头添加User-Agent

  打开浏览器请求搜狗页面,右键勾选进入Network,点击Headers找到浏览器的User-Agent

  注意:任何浏览器 ID 都可以。

  # 反反爬策略:请求头增加User-Agent

url = "https://www.sogou.com/web"

ky = input("enter a key")

params = {

    'query':ky

}

# 请求头中增加User-Agent ,注意请求头的数据格式是键值对,且都是字符串。

headers = {

    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"

}

response = requests.get(url=url,params=params,headers=headers)

response.encoding = 'utf-8'  

page_text = response.text

with open(f"{ky}.html","w",encoding='utf-8') as fp:

    fp.write(page_text)

  以上内容是如何用Python实现一个网页采集器,你学到了什么知识或者技巧吗?如果您想学习更多技能或丰富知识储备,请关注易宿云行业资讯频道。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线