python 爬虫(一)- 请求库urllib 和requests

urllib 介绍

官网urllib 是一个收集了多个涉及 URL 的模块的包

  • urllib.request 打开和读取 URL
  • urllib.error 包含 urllib.request 抛出的异常
  • urllib.parse 用于解析 URL
  • urllib.robotparser 用于解析 robots.txt 文件
import urllib.request
import re
import ssl

#若报错:unable to get local issuer certificate(⽆法获取本地颁发者证书)错误,请使⽤下
⾯代码
#全局取消证书验证
ssl._create_default_https_context = ssl._create_unverified_context

#封装request请求
url = "https://news.baidu.com/"
req = urllib.request.Request(url)
#执⾏请求获取响应信息
res = urllib.request.urlopen(req)
# 从响应对象中读取信息并解码
html = res.read().decode("utf-8")
#print(len(html))
#使⽤正则解析出新闻标题信息
pat = '<a href="(.*?)" .*? target="_blank">(.*?)</a>'
dlist = re.findall(pat,html)
# 遍历输出结果
for v in dlist:
print(v[1]+":"+v[0])

Requests 介绍

官网

简单使用

import requests
import re
url = "http://www.baidu.com"
# 抓取信息
res = requests.get(url)
#获取HTTP状态码
print("status:%d" % res.status_code)
# 获取响应内容
data = res.content.decode("utf-8")
#解析出结果
print(re.findall("<title>(.*?)</title>",data))

其他 HTTP 请求类型:PUT,DELETE,HEAD 以及 OPTIONS

import requests
r = requests.put('http://httpbin.org/put', data = {'key':'value'})

r = requests.delete('http://httpbin.org/delete')

r = requests.head('http://httpbin.org/get')

r = requests.options('http://httpbin.org/get')

requests的响应对象:requests.models.Response

  • response.text 获取str类型(Unicode编码)的响应
  • response.content 获取bytes类型的响应
  • response.content.decode(“utf-8”) 将获取的bytes类型进⾏解码(转字串)
  • response.status_code 获取响应状态码
  • response.headers 获取响应头
  • response.request 获取响应对应的请求
# 使⽤requests库GET请求⽅式爬取⼩⽶商品详情信息
import requests
import re
#准备请求参数、url地址
data = {
'product_id':'10000214'
}
url = "http://www.mi.com/buy/detail"
#执⾏get请求
res = requests.get(url,params=data)
#获取响应信息
print(res.status_code)
html = res.content.decode('utf-8')
#解析结果
pat = '<title>(.*?)</title>'
str= re.findall(pat,html)
print(str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘烟火

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

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

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

打赏作者

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

抵扣说明:

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

余额充值