自学习笔记
序
注:本文为自己学习感兴趣内容所做笔记,文中由大量图片构成,因为我是从mooc学的,懒得浪费时间去写那么多文字,用图片记录
最近突然觉得有必要学一下python,翻开大一的Python书发现忘的那是一干二净,想学一下爬虫,只好重头再来,找了个教程一看啥都看不懂,还是老老实实从零开始吧。
安装第三方库
爬虫有一个库叫 requests 说出来不怕丢人我好像连安装第三方库都不会,算了一步一步来
打开 cmd ,因为我的Python是装在D盘的,哪怕以前学过,我还是忘得一干二净
按照图片操作即可得到想安装的第三方库
request 库
使用方法
request的respance对象的属性
request库六种连接异常
response提供了一种异常处理方法
爬取网页的通用代码框架
可以使用异常处理避免程序的崩溃
import requests
def getHTMLText(url):
try:
r = request.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "Error"
if __name__ == "__main___":
url = "http://www.baidu.com"
print(getHTMLText(url))
request库的主要方法
- request 方法对应三个参数
requests.request(method, url, **kwargs)
method: 请求方式,对应 get/put/post 等7种
url: 拟获取页面的url连接
**kwargs: 控制访问的参数,共13个
1)params: 字典或字节序列,作为参数增加到url中,(通过这个参数加到url,服务器可以接受参数作为筛选)
2)data: 字典、字节序列或文件对象,作为Request的内容
3)json: JSON格式的数据
4)headers: 字典,HTTP定制头(可以用该字段访问HTTP url协议的头)(可以模拟浏览器发起访问)
5)cookies: 字典或CookieJar, Reques中的cookie
6)auth: 元组,支持HTTP认证功能
7)files: 字典类型,传输文件
8)timeout: 设定超时时间,秒
9)proxies: 字典类型,设定访问代理服务器,可以增加登录认证(可以隐藏服务器IP)
10)allow_redirects: True/False, 默认为True,重定向开关
11)stream: True/False,默认为True,获取内容立即下载开关
12)verify: True/False, 默认为True,认证ssl证书开关
13)cert本地SSL证书路径
HTTP对资源的操作方法
实例爬取
- 1>爬取京东商品链接
import requests
url = "https://item.jd.com/100027042714.html"
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[0:1000])
except:
print("Error")
- 2>爬取亚马逊商品
import requests
url = "https://www.amazon.cn/dp/B09H1ZKJLX/ref=s9_acsd_al_bw_c2_x_1_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-2&pf_rd_r=1XFNK1ZGT2F7VJJ77XJT&pf_rd_t=101&pf_rd_p=1a2a7e12-3362-49bf-9ac6-cc9c4bb4bb49&pf_rd_i=116169071"
try:
kv = {
'User-Agent':'Mozilla/5.0'}
r = requests.get(url,headers=kv)
r.raise_for_status()
r.encoding = r.apparent.encoding
print(r.text[0:1000])
except:
print("Error")
- 3>进行关键字爬取