抓取动态网页(如何用Python爬取本地网页(一、写出一个简单的静态网页))
优采云 发布时间: 2022-03-16 14:21抓取动态网页(如何用Python爬取本地网页(一、写出一个简单的静态网页))
如何使用 Python 抓取本地网页
一、写一个简单的静态网页,下面是我随便写的
网页源代码如下
大阿瓦达
>
Home
Site
Other
Aritcle
image/3.jpg
The bath
<p>Say sonmething
image/4.png
The bath
Say sonmething
©mydadadaw
</p>
由于是静态网页,所以我使用的是绝对路径,所以直接存放在桌面目录:C:\Users\wei\Desktop\webpage job\another pages job\11.html
二、解析网页
第一步:使用BeautifulSoup解析网页(这个库是python自带的)
汤 = BeautigulSoup(html,'lxml')
(PS:lxml是解析网页所需的库,这个库在python中是没有的,所以我们需要输入cmd来独立安装“pip install lxml”。这里我后面会分别介绍其他四个web解析库。是:“html 解析器”、“lxml HTML”、“lxml xml”、“html 51ib”)
第 2 步:扫描的对象在哪里
资源 = Soup.select('???')
第三步:从标签中获取你想要的信息
某物
(网页的段落标签)
标题=某事
率 = 4.0
BeautifulSoup => CSS 选择:
网页的基本结构
Xpath 和 CSS 解析网页的比较
Xpath:谁,哪里,哪个(稍后会详细介绍)
CSS Select:谁在哪里,有多少,长什么样(我们接下来的爬虫主要使用copyselector来查找我们需要的)
三、编写Python代码爬取我们编写的网页
这四行代码就可以实现我们网页的爬取
from bs4 import BeautifulSoup
with open('/Users/伟/Desktop/网页作业/另一个网页作业/11.html','r') as wb_data:
Soup = BeautifulSoup(wb_data,'lxml')
print(Soup)
'''
这里 第行的语句的意思是打开我们这个目录下的这个网页文件,r代表只读
'''
这个抓取了我们整个网页的数据,但是结果不是我们想要的
我们要分析爬取的网页
或者点击我们写的网页,抓取我们需要的图片
找到图片img行,然后右键,复制,查找,复制选择器
body > div.main-content > ul > li:nth-child(1) > img, 这是我们需要抓取的图片的代码
images = Soup.select('body > div.main-content > ul > li:nth-child(1) > img')
放入pycharm(Python编辑器)中抓取
我们将打印我们稍后抓取的图像信息
print(images)
但是我们放到python里面,会报错因为我们没有按照他的格式
因此,我们将编码
删除红色部分,即可获取该类型图片的信息
这和我们添加的两张图一模一样
然后我们获取我们需要的其他信息并附加所有代码
from bs4 import BeautifulSoup
with open('/Users/伟/Desktop/网页作业/另一个网页作业/11.html','r') as wb_data:
Soup = BeautifulSoup(wb_data,'lxml')
images = Soup.select('body > div.main-content > ul > li > img')
p = Soup.select('body > div.main-content > ul > li > p')
tittle = Soup.select('body > div.main-content > ul > li > h3')
print(images,p,tittle,sep='\n-----\n')
这是我们抓取的信息
[image/3.jpg, image/4.png]
-----
[<p>Say sonmething,
Say sonmething]
-----
[The bath, The bath]</p>
虽然,我们这里抓取的东西还是会有网页的代码,所以我们需要对内容进行过滤
在代码中加入判断结构,得到我们需要的
如果有什么要补充的,我稍后再补充