python爬虫爬取get请求的页面数据代码样例

2023-02-15,,,,

废话不多说,上代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 导包
import urllib.request
import urllib.parse
# 如下两行代码表示忽略https证书,如果请求不是https则该两行代码可不用。
import ssl
ssl._create_default_https_context = ssl._create_unverified_context if __name__ == "__main__":
"""指定爬取的网页URL"""
url = 'https://www.baidu.com'
"""通过urlopen函数向指定url发起请求,返回响应对象"""
response = urllib.request.urlopen(url)
"""通过调用相应对象中的read函数,反馈响应回客户端的数据值(爬到的数据)"""
data = response.read() # 获取响应中的数据值(字节类型)
# data = response.geturl() # 获取请求的url
# data = response.getcode() # 获取响应状态码
# data = response.headers() # 获取响应头信息
# data = str(data, encoding="utf-8") # 方法一、使用str()函数将bytes类型转换为str类型
# data = bytes.decode(data) # 方法二、使用bytes.decode()函数将bytes类型转换为str类型
data = response.read().decode() # 方法三、decode()将响应中字节(byte)类型的数据值转成字符串类型
with open('./baidu.html', 'w') as e: #使用IO操作将data表示的数据值以'w'权限的方式写入到baidu.html文件中
e.write(data)
print('写入文件完毕') """
1、爬取网络上某张图片数据,且存储到本地
if __name__ == '__main__':
url = 'http://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E5%9B%BE%E7%89%87&step_word=&hs=0&pn=5&spn=0&di=103290&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=3139953554%2C3011511497&os=282365737%2C413977936&simid=0%2C0&adpicid=0&lpn=0&ln=737&fr=&fmq=1564044690482_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fpic30.nipic.com%2F20130619%2F9885883_210838271000_2.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bgtrtv_z%26e3Bv54AzdH3Ffi5oAzdH3F8AzdH3F9aAzdH3Fbdl0c0lhu9kvac8k_z%26e3Bip4s&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&force=undefined'
response = urllib.request.urlopen(url)
data = response.read() # 因为爬取的是图片数据值(二进制数据),则无需使用decode进行类型转换。
with open('./bird.jpg', 'wb') as e: # 视频、图片等流式数据(二进制数据)使用'wb'进行写入
e.write(data)
print('写入完毕') 2、爬取使用百度根据指定词条搜索到的页面数据(例如爬取词条为‘蔡徐坤’的页面数据)
url的特性:url必须为ASCII编码的数据值。所以我们在爬虫代码中编写url时,如果url中存在非ASCII编码的数据值,则必须对其进行ASCII编码后,该url方可被使用
if __name__ == "__main__":
#原始url中存在非ASCII编码的值,则该url无法被使用。
#url = 'http://www.baidu.com/s?wd=蔡徐坤'
#处理url中存在的非ASCII数据值
url = 'http://www.baidu.com/s?'
#将带有非ASCII的数据封装到字典中,url中非ASCII的数据往往都是'?'后面键值形式的请求参数
param = {
'wd':'蔡徐坤'
}
#使用parse子模块中的urlencode函数将封装好的字典中存在的非ASCII的数值进行ASCII编码
param = urllib.parse.urlencode(param)
#将编码后的数据和url进行整合拼接成一个完整可用的url
url = url + param
#伪装UA
#将浏览器的UA数据获取,封装到一个字典中。该UA值可以通过抓包工具或者浏览器自带的开发者工具中获取某请求,从中获取UA的值
headers={
'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
#自定义一个请求对象
#参数:url为请求的url,headers为UA的值,data为post请求的请求参数(后续介绍)
request = urllib.request.Request(url=url,headers=headers)
#发送我们自定义的请求(该请求的UA已经进行了伪装)
response = urllib.request.urlopen(request)
data = response.read()
with open('./蔡徐坤.html','wb') as e:
e.write(data)
print('写入文件完毕') """

python爬虫爬取get请求的页面数据代码样例的相关教程结束。

《python爬虫爬取get请求的页面数据代码样例.doc》

下载本文的Word格式文档,以方便收藏与打印。