抓取动态网页(如何用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

  &copy;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 =&gt; 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 &gt; div.main-content &gt; ul &gt; li:nth-child(1) &gt; 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>

  虽然,我们这里抓取的东西还是会有网页的代码,所以我们需要对内容进行过滤

  在代码中加入判断结构,得到我们需要的

  如果有什么要补充的,我稍后再补充

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线