想玩爬虫?你需要知道一些简单的知识(二)(网页)

网页可分为三大部分一一HTML、CSS、JavaScript
把网页比作一个人的话,HTML相当于骨架,JavaScript相当于肌肉,css相当于皮肤,三者结合起来才能形成一个完善的网页。

1.HTML:超文本标记语言,网页包括文字、图片、视频等各种复杂的元素,其基础架构就是HTML。用不同的标签来表示不同类型的数据。各种标签相互排列、嵌套。如下图:
在这里插入图片描述
2.CSS:层叠样式表,“层叠”是指当在 HTML中引用了数个样式文件,并且样式发生冲突时,浏览器能依据层叠顺序处理,“样式”指网页中文字大小颜色 、元素间距、排列等格式。
如果做过java web的同学应该不会陌生(我当年被这个搞的心态爆炸),当然有很多优秀的前端框架可以用。在HTML整个框架的基础上,我们为了使页面更加好看,用CSS来美化。

3.JavaScript:JS,一种脚本语言。在网页里可能会看到一些交互和动画效果,如下载进度条、提示框轮播图。这通常就是 JavaScript 的功劳。它主要实现了一种实时、动态、交互的页面功能。

所以说,HTML定义了网页的内容和结构,CSS描述了网页的布局,JS定义了网页的行为。

一个网页的标准形式是 html 标签内嵌套 head和body标签,head内定义网页的配置和引用,body内定义网页的正文。

在HTML中,所有标签定义的内容都是节点,它们构成了一个HTML DOM树。
什么是 DOM?
DOM 是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”

W3C DOM 标准被分为 3 个不同的部分:
1、核心 DOM - 针对任何结构化文档的标准模型
2、XML DOM - 针对 XML 文档的标准模型
3、HTML DOM - 针对 HTML 文档的标准模型

HTML DOM 是:
HTML 的标准对象模型、HTML 的标准编程接口、W3C 标准

HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。
换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。

根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
1、整个文档是一个文档节点
2、每个 HTML 元素是元素节点
3、HTML 元素内的文本是文本节点
4、每个 HTML 属性是属性节点
5、注释是注释节点
可参考:https://www.w3school.com.cn/htmldom/dom_intro.asp

在网页中我们使用CSS选择器来定位节点,以 # 开头表示选择id,以 . 开头表示选择class,还可根据标签名筛选。各个选择器之间加上空格可以代表嵌套关系。
还有比较常用的选择器是XPath。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是关于Python网页爬虫的一些知识点: 1. 创建Spider类:在Scrapy项目的spiders目录下创建一个新的Python文件,定义一个类,继承自scrapy.Spider类,并给它一个名字。 ```python import scrapy class MySpider(scrapy.Spider): name = "my_spider" ``` 2. 定义起始URL:在Spider类中定义一个start_urls列表,包含要爬取的起始URL。 ```python start_urls = [ 'http://www.example.com/page1', 'http://www.example.com/page2', ] ``` 3. 解析网页内容:在Spider类中定义一个parse方法,用于解析网页内容。可以使用XPath或CSS选择器来提取所需的数据。 ```python def parse(self, response): # 使用XPath提取数据 title = response.xpath('//h1/text()').get() content = response.xpath('//div[@class="content"]/text()').get() # 使用CSS选择器提取数据 links = response.css('a::attr(href)').getall() # 处理提取到的数据 # ... # 返回提取到的数据 yield { 'title': title, 'content': content, 'links': links, } ``` 4. 爬取下一页:如果需要爬取多个页面,可以在parse方法中使用scrapy.Request发送新的请求。 ```python def parse(self, response): # 解析当前页面的数据 # ... # 发送请求爬取下一页 next_page_url = response.css('a.next-page::attr(href)').get() if next_page_url: yield scrapy.Request(url=next_page_url, callback=self.parse) ``` 5. 存储数据:可以将爬取到的数据存储到数据库中,如MySQL或MongoDB,以便后续查询和管理。 ```python import pymongo class MySpider(scrapy.Spider): # ... def parse(self, response): # 解析网页内容 # ... # 存储数据到MongoDB client = pymongo.MongoClient('mongodb://localhost:27017/') db = client['mydatabase'] collection = db['mycollection'] collection.insert_one({ 'title': title, 'content': content, 'links': links, }) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值