python 打开一个网页_爬虫入门(一)——如何打开一个网页

本文是作者的爬虫学习笔记,介绍了如何使用Python的urllib.request模块打开网页,包括设置data参数、headers和使用cookie。通过实例展示了向服务器发送数据的GET和POST方法,并解释了在不同场景下如何处理URL中的汉字和设置User-Agent。
摘要由CSDN通过智能技术生成

做了一段时间自然语言处理的项目,体会到了爬虫的乐趣,甚至一度产生了学好爬虫真的可以为所欲为的美妙错觉。因此决定开个坑,记录自己的爬虫学习过程,也督促自己学习更高深的爬虫姿势。目前我只用到了最基础的爬虫知识,在此进行整理记录,以便在老年痴呆不定时记忆清零时可以快速回忆起来。

本文介绍在python下,如何利用爬虫实现最简单的网页获取,包括data参数、headers参数的设置,以及cookie的使用。因为本身是小白,所以写得也比较小白。需要更加深入学习的读者建议参考Jack-Cherish的系列博客python3网络爬虫入门。

网络爬虫,又称网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。爬虫是根据网页的URL来寻找网页并进行信息获取的。URL,统一资源定位符,俗称网址,例如B站首页的URL为 https://www.bilibili.com/(好像暴露了肥宅属性,咳咳)。

1. urllib.request——打开网页的基础模块

当我们知道一个网站的URL时,使用python下的urllib组件,即可实现简单的网页抓取。urllib组件的主要模块有:

urlib.request: 打开和读取url

urllib.error: 包含由request产生的错误

url.parse: 解析url

通过urllib.request.urlopen()这个函数接口就可以打开一个网站,它主要有url与data两个输入参数。url用于输入网址以及一些其他设置。data参数用于向服务器传输数据以实现与网页的交互,将在第二部分进行介绍。

urllib.request.urloprn(url, data=None)

向urlopen()传入一个url地址,即可打开对应的网页:

# 用 urlopen 直接打开一个url地址

from urllib import request

url = 'https://www.bilibili.com/'

response = request.urlopen(url)

html = responce.read().decode()

需要注意的是,urlopen函数的url输入参数不仅可以是一个字符串,也可以是一个用urllib.request.Request()函数构建的Request对象。

# url不仅可以是一个字符串,也可以是一个Request对象

req = request.Request(url)

responce = request.urlopen(req)

构建Request对象的方法支持更多的参数输入,常用的参数除了与urlopen()相同的url与data外,还包括headers参数,将在第三部分进行介绍。个人建议写爬虫程序时都通过构建Request对象进行参数传递,而不是直接将url传入urlopen()。

urllib.request.Request( url, data=None, headers={})

2. data参数——向网页发送数据

有时候我们需要向网页提交一些数据,例如账户密码、检索关键词等等。这时候就需要用到data参数了。使用data参数可以向服务器发送数据。如果没有设置data参数,http请求默认为GET方式,如果设置了data参数,则采用POST方式进行访问。

以有道翻译为例,如图,打开有道翻译http://fanyi.youdao.com/,在输入栏输入需要翻译的词汇“肥宅”。按下F12打开开发者工具,点击Network,选中XHR文件,在Form Data中,我们就可以看到输入的data信息。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值