前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pyhon网络爬虫学习笔记—抓取本地网页(一)

Pyhon网络爬虫学习笔记—抓取本地网页(一)

作者头像
Gorit
发布2021-12-09 16:03:36
1.3K0
发布2021-12-09 16:03:36
举报
文章被收录于专栏:Gorit 带你学全栈系列

如何用Python爬取本地网页

一、写出一个简单的静态网页,下面是我随便写的一个

网页源代码如下

代码语言:javascript
复制
    大阿瓦达
    




 
>
    
        Home
        Site
        Other
    

    
    Aritcle
        
            
                
                The bath
                Say sonmething
            
            
                The bath
                Say sonmething
            
        
    
    
        ©mydadadaw 

 由于是静态网页,我用的是绝对路径 ,我就直接存放在桌面的目录里:  C:\Users\伟\Desktop\网页作业\另一个网页作业\11.html

二、解析网页

第一步:使用BeautifulSoup 解析网页(这个库是python自带的)

           Soup = BeautigulSoup(html,’lxml’) (PS:lxml为解析网页所需要的库,在python中这个库是没有的,所以我们需要进入cmd 进行自主安装“pip install lxml”,这里我会在后面在介绍另外四种解析网页库,分别是:”html parser”,”lxml HTML”, ”lxml xml”, ”html 51ib”)

第二步:扫描抓取的东西在哪

           资源 = Soup.select(‘???’)

第三步:从标签中获得你要的information(信息)

Something (网页的段落标签)                                              tittle = Something                                              rate = 4.0 BeautifulSoup => CSS Select: 一个网页的基本结构

Xpath与CSS解析网页的比较

Xpath:谁,在哪,哪几个 (之后再讲) CSS Select:谁在哪,第几个,长什么样(我们接下来的爬虫就主要用copy selector找我们需要的内容)

三、写Python代码来爬取我们写的网页

这四行代码就可以实现我们网页的爬取

代码语言:javascript
复制
from bs4 import BeautifulSoup
with open('/Users/伟/Desktop/网页作业/另一个网页作业/11.html','r') as wb_data:
    Soup = BeautifulSoup(wb_data,'lxml')
    print(Soup)
'''
这里 第行的语句的意思是打开我们这个目录下的这个网页文件,r代表只读
'''

这样就把我们整个网页的数据抓取过来了,但是结果并不是我们想要的

我们要将爬取的网页进行分析

还是点开我们写的网页,抓取我们需要的图片

找到图片img这一行,然后右键,copy,找到,copy selector

body > div.main-content > ul > li:nth-child(1) > img,这就是我们所需要抓取的图片的代码

代码语言:javascript
复制
    images = Soup.select('body > div.main-content > ul > li:nth-child(1) > img')

放进pycharm(Python编辑器)中进行抓取

后面再打印我们所抓取的图片信息 

代码语言:javascript
复制
    print(images)

但我们放进python中,它会报错,因为我们没有按照他的格式进行

因此,我们要将代码

红色的部分删除,就可以得到这一类图片的信息

这里和我们加上的两个图片完全一致

然后我们在抓取我们需要的其他信息,附上全部代码

代码语言:javascript
复制
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')

这就是我们抓取到的信息

代码语言:javascript
复制
[, ]
-----
[Say sonmething, Say sonmething]
-----
[The bath, The bath]

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

在代码中加上判断结构即可得到我们所需要的内容

如有补充,我会在后续加上

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/12/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何用Python爬取本地网页
    • 一、写出一个简单的静态网页,下面是我随便写的一个
      • 二、解析网页
        • 第一步:使用BeautifulSoup 解析网页(这个库是python自带的)
        • 第二步:扫描抓取的东西在哪
        • 第三步:从标签中获得你要的information(信息)
        • 红色的部分删除,就可以得到这一类图片的信息
        • 这里和我们加上的两个图片完全一致
        • 然后我们在抓取我们需要的其他信息,附上全部代码
        • 这就是我们抓取到的信息
        • 虽然,这里抓取到的东西还是会有网页的代码,所以我们要对内容进行筛选
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档