爬虫学习笔记

定制request

传递URL

有params = param_data , 这个就是传入一些,用户密码之类的

定制请求头

无法访问时候,就是页面禁止爬取,此时要定制Headers
获取方法

进入网页-->点鸡network 选项卡-->刷新-->找到Doc-->点鸡name 下方的网址-->

然后复制User-Agent (Hoysst)

先写base_url 然后加入headers 参数是headers = headers ,一样是写成字典的形式

网络超时

为request的 timeout参数设置等待描述,如果服务器在指定时间之内没有应答就返回异常

解析网页

BeautifulSoup 简介

bs用来解析网页,支持CSS 选择器,Python 标准库中的HTML 解析器

复制代码
from bs4 import BeautifulSoup
soup = BeautifulSoup("<html>A Html Text</html>","html.parasr")
两个参数:第一个是文本,第二个是解释器
soup.prettify() 格式化输出

BeautifulSoup 四大对象

BeautifulSoup 将HTML 文档转换成一个复杂的树形结构,每个节点都是一个Pyhton 对象

它们分别是:tag, NavigableString, BeautifulSoup, Comment

Tag:

有两个属性: name 和attrs

复制代码
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b
type(tag)
# <class 'bs4.element.Tag'>

tag.name
# 'b'

tag['class']
# 'boldest'

tag.attrs
# {'class': 'boldest'}

type(tag.attrs)
# <class 'dict'>

bs 用NavigableString 来包装夹在tag 中间的的字符串。

但是字符串中间不能包含其他的tag

复制代码
soup = BeatutifulSoup('<b class="boldest">Extremely bold</b>')
s = soup.b.string
print(s)        # Extremely bold
print(type(s))  # <class 'bs4.element.NavigableString'>
这个 s 就是一个 NavigableString 对象

BeautifulSoup

BeautifulSoup 对象表示的是一个文档的全部内容。大部分时候,可以把它当作 Tag 对象。但是 BeautifulSoup 对象并不是真正的 HTM L或 XML 的 tag,它没有attribute属性,name 属性是一个值为"[document]"的特殊属性。

Comment

一般表示 文档的注释部分

复制代码
soup = BeautifulSoup("<b><!--This is a comment--></b>")
comment = soup.b.string
print(comment)          # This is a comment
print(type(comment))    # <class 'bs4.element.Comment'>

遍历文档树

搜索文档树

CSS 选择器

相关推荐
嵌入式-老费26 分钟前
自己动手写深度学习框架(快速学习python和关联库)
开发语言·python·学习
许长安36 分钟前
C++中指针和引用的区别
c++·经验分享·笔记
摇滚侠1 小时前
Spring Boot3零基础教程,StreamAPI 介绍,笔记98
java·spring boot·笔记
执笔论英雄1 小时前
【大模型训练】zero 学习及deepseed实战
人工智能·深度学习·学习
摇滚侠1 小时前
Spring Boot3零基础教程,StreamAPI 的基本用法,笔记99
java·spring boot·笔记
岑梓铭2 小时前
《考研408数据结构》第六章(5.5树的应用)复习笔记
数据结构·笔记·考研·408·ds
前路不黑暗@3 小时前
Java:继承与多态
java·开发语言·windows·经验分享·笔记·学习·学习方法
2501_916007473 小时前
从零开始学习iOS App开发:Xcode、Swift和发布到App Store完整教程
android·学习·ios·小程序·uni-app·iphone·xcode
moringlightyn4 小时前
基础开发工具--编译器g++/gcc 自动化构建make/Makefile
linux·运维·笔记·自动化·c·编译器·make/makefile
小白学大数据4 小时前
集成Scrapy与异步库:Scrapy+Playwright自动化爬取动态内容
运维·爬虫·scrapy·自动化