帖子

《Python进阶课程》学习笔记分享园地 | 讯飞AI大学

  [复制链接]
173****1522 发表于 7 天前 来自手机
251#
#Day 17+学习笔记+08/01
使用道具 举报 回复
132****1495 发表于 7 天前
252#
#Day 13+学习笔记+08/02
    爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流
的爬取策略。
  基本流程:准备工作,获取数据,解析内容,保存数据。
使用道具 举报 回复
匿名  发表于 7 天前
253#
#Day 19+学习笔记+08/02今天电脑貌似好了,不知道为什么,喜欢上了手机写笔记,打算先打了笔记,
然后自己在敲一段代码。


主题:urllib工具库专栏
=========================
无user-agent检测的反爬的请求
=========================
如百度等网址

一、发送get请求——适用于无需登录场景
1、环境依赖:import urllib. request
2、openurl()发起请求:response=urllib. request.urlopen("url/get")
3、read()读取响应:htmlSource=response. read()
4、decode()解码读到的响应:htmlFormed=htmlSource. decode("utf-8")

二、发送post请求——适用于登录请求场景

1、环境依赖:
import urllib. request #请求库
import urllib. parse #解析库

2、编辑和编码登录信息:
submitInfo=bytes(urllib.parse.urlencode({key1:val1,key2:val2,…,keyN:valN}),encoding="utf-8")
3、openurl()发起请求:request=urllib. request. urlopen("url/post",submitInfo)
4、read()读取响应:htmlSource=response. read()
5、decode()解码读到的响应:htmlFormed=htmlSource. decode("utf-8")

三、请求异常处理(诸如超时)
try:
正常时的代码(超时处理,通常,request(…,timeout=timeNum))
except urllib. error. UrlError as e:
print(e)

================

user-agent反爬突破
================
1、header浏览器伪装
header={"user-agent":"浏览器底部"}
2、创建请求语句req=urllib. request. Request(url,header=header)
3.发送请求 urllib. request. urlopen(req)
使用道具 回复
156****7205 发表于 7 天前
254#
#Day 19+学习笔记+08/02今天电脑貌似好了,不知道为什么,喜欢上了手机写笔记,打算先打了笔记,
然后自己在敲一段代码。


主题:urllib工具库专栏
=========================
无user-agent检测的反爬的请求
=========================
如百度等网址

一、发送get请求——适用于无需登录场景
1、环境依赖:import urllib. request
2、openurl()发起请求:response=urllib. request.urlopen("url/get")
3、read()读取响应:htmlSource=response. read()
4、decode()解码读到的响应:htmlFormed=htmlSource. decode("utf-8")

二、发送post请求——适用于登录请求场景

1、环境依赖:
import urllib. request #请求库
import urllib. parse #解析库

2、编辑和编码登录信息:
submitInfo=bytes(urllib.parse.urlencode({key1:val1,key2:val2,…,keyN:valN}),encoding="utf-8")
3、openurl()发起请求:request=urllib. request. urlopen("url/post",submitInfo)
4、read()读取响应:htmlSource=response. read()
5、decode()解码读到的响应:htmlFormed=htmlSource. decode("utf-8")

三、请求异常处理(诸如超时)
try:
正常时的代码(超时处理,通常,request(…,timeout=timeNum))
except urllib. error. UrlError as e:
print(e)

================
user-agent反爬突破
================
1、header浏览器伪装
header={"user-agent":"浏览器底部"}
2、创建请求语句req=urllib. request. Request(url,header=header)
3.发送请求 urllib. request. urlopen(req)

使用道具 举报 回复
159****3588 发表于 7 天前
255#
#Day 8+学习笔记+08/2   HTML标签通常是成对出现。利用BeautifulSoup来解析和提取数据,find()与find_all()是BeautifulSoup对象的两个方法,find()是提取满足要求的首个数据,find_all()是提取满足要求的所有数据。

使用道具 举报 回复
Day 19+学习笔记+08/02
20200802.png
使用道具 举报 回复
130****5381 发表于 7 天前
257#
#Day 18+学习笔记+08/02

18.png
使用道具 举报 回复
135****8217 发表于 7 天前
258#
8.2学习心得
正则提取
findLink=re.compile(r'<ahref="(.*?)">')   #创建正则表达式对象,表示规则(字符串模式)
findImage=re.compile(r'<img .*src="(.*?)"',re.S)   #re.S让换行符包含在字符中
findTitle=re.compile(r'<spanclass="title">(.*)</span>')
findRating=re.compile(r'<span class="rating_num"property="v:average">(.*)</span>') #评分
findJudge=re.compile(r'<sapn>(\d)人评价</span>')   #评价人数
findInq=re.compile(r'<spanclass="inq">(.*)</span>')   #概况
#影片的相关内容
findBD=re.compile(r'<pclass="">(.*)</p>',re.S)
# 2.解析数据:逐一解析
soup=BeautifulSoup(html,"html.parser")
for item in soup.find_all('div',class_="item"): #查找符合要求的字符串,形成列表
    # print(item)  #测试查看电影item全部信息
    data=[]  #保存一部电影的所有信息
    item=str(item)


    #获取到影片详情的链接
    link=re.findall(findLink,item)[0]  #re库用来通过正则表达式查找指定的字符串
    print(link)

使用道具 举报 回复
182****9470 发表于 7 天前
259#
#Day 21+学习笔记+08/02
day21-1.PNG
day21-2.PNG

使用道具 举报 回复
136****3075 发表于 7 天前
260#
#Day 17 学习笔记 08/02
17.jpg

使用道具 举报 回复