爬虫实战小案例

urllib.request模块

  • 模拟浏览器构建一个Get请求爬取网页
  1. 模拟浏览器构建一个简单Get请求来爬取
 import urllib.request

 url = 'https://httpbin.org/post'
 reponse = urllib.request.urlopen(url)
 #打开url
 #response 是 HTTPResposne 类型的对象
 print( response.read().decode('utf-8') )
 #以utf-8编码方式解码读取返回网页的内容,并打印
  1. 模拟浏览器构建一个Post请求来爬取网页
 import urllib.request,parse

 url = 'https://httpbin.org/Post'
 dict = {'name':'liu'}

 str = urllib.parse.urlencode(dic)
 # 将字典dict序列化为 GET 请求参数并返回
 # GET请求参数就是URL ?后面的 赋值语句

 data = bytes(str,encoding='utf-8')
 # 按照encoding的值来将str转码成字节流对象并返回

try:
     reponse = urllib.request.urlopen(url,data = data,timeout = 2)
     # 传递data给data参数(必须是bytes类型)并设置超时时间为2秒
     # 超过2秒抛出 TimeoutError 异常
     #一旦传递了data参数,这变成了一个Post请求
     print( response.read().decode('utf-8') )
     
except urllib.error.URLError as e:
  if isinstance(e.reason, socket.timeout):
      print('TIME OUT')
  1. 利用Request类灵活构建请求来爬取
import urllib.request

url = 'https://httpbin.org/post'

#请求头
headers = {
 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
 'Host': 'httpbin.org'
}

dict = {'name':'liu'}
str = urllib.parse.urlencode(dic)
data = bytes(str,encoding='utf-8')

#用url,data(必须是bytes类型),headers,POST实参构造Request对象
request = urllib.request.Request(url,data=data, headers=headers, method='POST')
response = urllib.request.urlopen(request)
print( response.read().decode('utf-8') )

其他相关文章推荐

  1. 爬虫学习——爬虫学习——Robots协议和 robotparser模块
  2. 一文速通的正则表达式
  3. python中使用正则表达式——为所欲为
  4. URL详细分析及在python中处理URL
  5. 爬虫实战(1)——小试牛刀
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳衣白卿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值