页面采集

爬虫

requests模块

  • urllib模块:基于模拟浏览器上网的模块。网络请求模块。
  • requests:基于网络请求的模块

    • 作用:模拟浏览器上网。
  • requests模块的编码流程:

    • 指定url
  • 发起请求

    • 获取响应数据(爬取到的数据)
  • 持久化存储

页面采集

import requests

#1.爬取搜狗首页的页面源码数据
url = 'https://www.sogou.com/'
response = requests.get(url=url)
page_text = response.text #text返回的是字符串形式的响应数据
with open('./sogou.html','w',encoding='utf-8') as fp:
    fp.write(page_text)
import requests

#2.简易的网页采集器
#涉及到的知识点:参数动态化,UA伪装,乱码的处理
word = input('enter a key word:')
url = 'https://www.sogou.com/web'
#参数动态化:将请求参数封装成字典作用到get方法的params参数中
params = {
    'query':word
}
response = requests.get(url=url,params=params)
page_text = response.text
fileName = word+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
    fp.write(page_text)
print(word,'下载成功!!!')

上述代码出现的问题:

  • 乱码问题
  • 爬取数据丢失
import requests

#乱码处理
word = input('enter a key word:')
url = 'https://www.sogou.com/web'
#参数动态化:将请求参数封装成字典作用到get方法的params参数中
params = {
    'query':word
}
response = requests.get(url=url,params=params)
#可以修改响应数据的编码
response.encoding = 'utf-8'#手动修改了响应对象的编码格式
page_text = response.text
fileName = word+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
    fp.write(page_text)
print(word,'下载成功!!!')
上一篇:微盟突遭员工“删库跑路”!疫情之下远程运维首重安全


下一篇:跨线程的安全更新控件