html,xml_网页开发_爬虫_笔记
20220402
笔记本走手机热点,重连之后又是另一个ip
20220331
https://mp.weixin.qq.com/s/znXuCB0Fl32TbP_0UaO6SQ
爬虫相关知识快速复习
20220329
'$remote_addr | $time_iso8601 | $request | ''$status | $body_bytes_sent | $http_referer | ''$http_user_agent | $upstream_addr | $upstream_response_time | $request_time |'
客户端地址 访问日期时间 请求接口明细(请求方式 接口 协议) 请求状态码 请求头大小 前端访问主页地址(调用我们接口的来源地址) 浏览器agent 内部接口负载服务器后端响应时间 总请求响应时间
125.69.60.179 | 2022-03-24T00:00:14+08:00 | POST /search/search/suggest HTTP/1.1 | 200 | 78 | - | okhttp/3.2.0 | 172.28.131.32:10020 | 0.012 | 0.013 |
125.69.60.179 | 2022-03-24T00:00:14+08:00 | POST /search/search/suggest HTTP/1.1 | 200 | 78 | - | okhttp/3.2.0 | 172.28.131.25:10020 | 0.011 | 0.013 | nginx日志
https://github.com/xiaoyang611/crawler-denfender
https://zhuanlan.zhihu.com/p/103009591
机器学习反爬虫
20220215
Pyppeteer 比 selenium更高效?
20211220
查看chrome版本
解决:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' execubrowser = webdriver.Chrome(options=chrome_options)path参数默认D:\Python37\Scriptschromedriver放在这个文件夹下面
20211204
https://blog.csdn.net/m0_62298204/article/details/120802053
Executable path has been deprecated please pass in a Service object in Selenium Python
20211014
https://bjjdkp.github.io/post/concurrent_requests-and-download_delay/
请求并发数和下载延迟不一样
下载延迟是对每次请求的下载的等待时间
20210928
Python-3反爬虫原理与绕过实战
全面系统了解索引重点
HTTP响应是指服务器端根据客户端的请求返回的信息。HTTP响应由状态码、响应头和响应正文组成。状态码是一个3位数字(如200),它的第一位代表了不同的响应状态。响应状态共有5种,含义如下。
1代表信息响应类,表示接收到请求并且继续处理,这类响应是临时响应。2代表处理成功响应类,表示动作被成功接收、理解和接受
3代表重定向响应类,为了完成指定的动作,必须接受进一步处理。
4代表客户端错误,表示客户请求包含语法错误或者是不能正确执行的请求。
5代表服务器端错误,服务器不能正确执行一个正确的请求
状态码
错误码
20210928
seleniumIDE把网页操作变成代码
https://www.cnblogs.com/lhTest/p/14703892.html
selenium运行出现闪退 需要把其运行文件作为入口 加上
if name=‘main’
https://www.cnblogs.com/thomasbc/p/6650119.html
xhr ajax和javascript区别
postman可以测试影响登陆的原因
https://blog.csdn.net/qq_42348937/article/details/85065104
selenium 获取登录cookies,并添加cookies自动登录
https://npm.taobao.org/mirrors/chromedriver/94.0.4606.61/
webdriver下载地址
20210922
聚创爬虫遇到的问题
1.必须先post登陆,输入账号和密码
2.后续要连续访问网页进行爬取就必须通过get登陆和带cookies 请求
3.但是get登陆需要请求的cookies里面带有一串随机数字串,这个数字串
是在浏览器输入login页面的时候由服务器生成返回的
且这个数字串 通过普通的get方法请求response里面是没有这个数字串的
且这个数字串并不是在本地由javascript生成的
4.怎么办?
网页调试 这些网页的打开也是从上到下按时间顺序的
https://www.runoob.com/js/js-validation.html
看到这里
语句标识符
DOM (Document Object Model)(文档对象模型)是用于访问 HTML 元素的正式 W3C 标准
JavaScript 是 web 开发人员必须学习的 3 门语言中的一门:
HTML 定义了网页的内容
CSS 描述了网页的布局
JavaScript 控制了网页的行为
https://www.runoob.com/css3/css3-borders.html
看到这里
https://www.runoob.com/css/css-display-visibility.html
块级和内连元素的区别
20210916
元素:header,h1,p 等标签
https://www.runoob.com/css/css-border.html
css边框定义
border-style属性用来定义边框的样式
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
盒子模型(Box Model)
Margin(外边距) - 清除边框外的区域,外边距是透明的。
Border(边框) - 围绕在内边距和内容外的边框。
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
Content(内容) - 盒子的内容,显示文本和图像。
a:hover - 当用户鼠标放在链接上时
链接
因此,1em的默认大小是16px。可以通过下面这个公式将像素转换为em:px/16=em
当text-align设置为"justify",每一行被展开为宽度相等,左,右外边距是对齐(如杂志和报纸)。
一般情况下,样式表优先级如下:
(内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>浏览器会从文件 mystyle.css 中读到样式声明,并根据它来格式文档。
https://c.runoob.com/front-end/61/
HTML/CSS/JS 在线工具
html5没看
https://www.runoob.com/html/html-tag-name.html
HTML 标签简写及全称 重点
https://www.runoob.com/html/html-quicklist.html
html标签速查手册重点
https://www.runoob.com/tags/html-urlencode.html
url编码手册重点
HTML 标签原本被设计为用于定义文档内容,如下实例:
样式表定义如何显示 HTML 元素,就像 HTML 中的字体标签和颜色属性所起的作用那样。样式通常保存在外部的 .css 文件中。我们只需要编辑一个简单的 CSS 文档就可以改变所有页面的布局和外观。
html和css的区别
xmlns 在那个范围内起作用
一些变音符号, 如 尖音符 ( ̀) 和 抑音符 ( ́) 。
如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities
https://www.runoob.com/try/try.php?filename=tryjs_intro_style
javascript 运行案例
你需要使用源属性(src)。src 指 “source”。源属性的值是图像的 URL 地址。
alt 属性用来为图像定义一串预备的可替换的文本。
frameborder 属性用于定义iframe表示是否显示边框。
设置属性值为 “0” 移除iframe的边框:
表格由 <table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。
<table border="1">
表格边框宽度
表格的表头使用 <th> 标签进行定义。
无序列表使用 <ul> 标签
同样,有序列表也是一列项目,列表项目使用数字进行标记。 有序列表始于 <ol> 标签。每个列表项始于 <li> 标签。
自定义列表不仅仅是一列项目,而是项目及其注释的组合。
自定义列表以 <dl> 标签开始。每个自定义列表项以 <dt> 开始。每个自定义列表项的定义以 <dd> 开始。
文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)
预选下拉列表:提前选好了
legend 图例 标题
VS Code 安装教程参考:https://www.runoob.com/w3cnote/vscode-tutorial.html
20210902
RANDOMIZE_DOWNLOAD_DELAY 设置
https://www.cnblogs.com/nuochengze/p/13152156.html
反扒 同一个页面每次请求都会生成一个随机的id放在 cookies 里面
此id 通过javascript 生成
在源代码里面找 static 静态的 javacript 代码 其不在网页源代码里面
找到生成此随机id的js代码
可以打断点一步一步调试 找到生成此id 的代码行 然后 用 javascript ide 先调试 然后 用
pycharm 来执行
展开代码
20210827
scrapy TypeError: No adapter found for objects of type: <class ‘NoneType’> (None)
如果要你本地保存的话 返回return 为空不允许的
20210816
框架,通俗来说,就是把相似过程的相同特征提取出来。
https://mp.weixin.qq.com/s/QxWE99BFwxz7ptNzhbn-8g
手把手教你用scrapy制作一个小程序 !(附代码)
20210813
获取当前py模块的进程号
获取父进程的pid pycharm的pid
https://blog.csdn.net/weixin_39965184/article/details/88090876
https://blog.csdn.net/qq_43295136/article/details/86239700
scrapy中item和pipeline和yield和callback用法
https://www.cnblogs.com/vawter/p/5923369.html
user_agent_list
zidbc 是 cookie的字典形式 里面是 键值对yield scrapy.FormRequest(method='get',url='https://www.scjuchuang.com/goods?attr=3&page=1',# cookies=cookie_jar,cookies=zidbc,# meta={ 'cookiejar':zidbc},callback=self.duqnr)
scrapy.Request 和 scrapy.FormRequest的区别
前者只能request请求
或者可以get 也可以post
cookies=xxx 这种形式 右边只能是字典形式
meta={'cookiejar':xxxx} post 形式的时候用 其右边需要是 cookiejar的形式
cookies里面可能包含多个分量 可以看成是多个键值对
要成功请求最好 是全部分量都包含
第一次post登陆的时候 返回的response的标头里面cookies不一定
含有值,其值可能保存在response.text具体内容里面
20210812
https://www.cnblogs.com/lijunlin-py/p/14922279.html
http://tools.bugscaner.com/cookietocookiejar/
https://blog.csdn.net/tsfy2003/article/details/106247895
https://www.jianshu.com/p/34ec8317f6af
字典和cookiejar的转换
https://www.jianshu.com/p/15278c331434
https://blog.csdn.net/levon2018/article/details/80558108
cookies字符串转字典
https://zhuanlan.zhihu.com/p/68149801
scrapy写入mysql数据库
https://www.cnblogs.com/mzct123/p/5663311.html
get-pip.py的 使用
https://pan.baidu.com/s/13rIiIcpaQpO7iKexhxKoRA
get-pip.py 下载
Python get-pip.py文件
做项目时发现get-pip.py这个文件比较难下载,将此文件分享给各位需要的人!
文件来源:https://bootstrap.pypa.io/get-pip.py
如果链接打不开请至网盘自行下载:链接: https://pan.baidu.com/s/13rIiIcpaQpO7iKexhxKoRA 提取码: r2mb
模拟请求 cookies数据要完整
post请求不仅仅用于登录
其他页面请求也可以用post
20210810
多账号爬取cookies的存储和读取
https://www.cnblogs.com/thunderLL/p/7992040.html
cookies 保存
https://www.cnblogs.com/xmwd/p/scrapy_cookies_save_to_file_and_load_from_file.html
https://cloud.tencent.com/developer/article/1562088
https://mp.weixin.qq.com/s/Yvh2_V-BWkKIO5mv35Btlg
scrap cookies登陆
https://www.cnblogs.com/rwxwsblog/p/4572367.html
scrapy写入数据库
20210809
D:\合纵文件\【Python全系列】Python全系列之爬虫scrapy框架及案例\18-20爬虫课件V3.1\爬虫课件V3.1\爬虫课件\file\part04
爬虫简单流程
20210807
https://blog.csdn.net/hihell/article/details/119137580?utm_medium=distribute.pc_feed_v2.none-task-blog-yuanlijihua_tag_v1-2.pc_personrecdepth_1-utm_source=distribute.pc_feed_v2.none-task-blog-yuanlijihua_tag_v1-2.pc_personrec
免费代理ip
20210805
https://blog.csdn.net/kyle1314608/article/details/119422947
Python使用cookie 免密登录了解一下
https://github.com.cnpmjs.org/hhuayuan/process-monitor
进程监控
https://blog.csdn.net/zhaomengszu/article/details/100146408
定时执行爬虫
20210804
https://www.bilibili.com/video/av286623724/?p=5&spm_id_from=pageDriver
https://blog.csdn.net/weixin_37719937/article/details/97417842
cookies免登录
https://www.cnblogs.com/Python-XiaCaiP/p/10268524.html
貌似不起作用
https://natapp.cn/register_2
natapp 免费隧道
https://my.oschina.net/u/4264553/blog/4041192
https://blog.csdn.net/weixin_30834783/article/details/97388084
scrapy爬虫之断点续爬和多个spider同时爬取
scrapy crawl juchuangyy -s JOBDIR=crawls/juchuangyy
https://doc.scrapy.org/en/latest/topics/jobs.html?highlight=jobdir
增量爬取
lxml 合 etree的解析方式
https://zhuanlan.zhihu.com/p/34300202
多级链接跳转
反爬措施
先登陆所有账号,只要cookies不过期 就可以直接爬取数据
cookies里面就包含了token用户登陆信息 直接使用
同一个账号的header和cookies 要对应 且是同一个页面的
params也要对应 同一个页面
cookies 要使用登陆页面的cookies而不是其他页面的
账户频繁登陆会被封
https://www.jianshu.com/p/7911f90ec693
https://blog.csdn.net/sinat_41701878/article/details/80295600 重点
Scrapy随机切换用户代理User-Agent
爬虫如何先同时登陆多个账号
然后每个账号间隔着爬一页
https://www.cnblogs.com/rwxwsblog/p/4578764.html
scrapy同时运行多个实例
可用的爬虫解决方法
阿布云
查询自己的公网ip
myip.top
whoer.net/zh
20210803
ipidea\Trusted Proxies
这两个是商用的 可以试用
400是一种HTTP状态码,告诉客户端它发送了一条异常请求。400页面是当用户在打开网页时,返回给用户界面带有400提示符的页面。其含义是你访问的页面域名不存在或者请求错误。主要分为两种。
1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
2、请求参数有误。
400的主要有两种形式:
1、bad request意思是“错误的请求";
2、invalid hostname意思是"不存在的域名”。
https://ip.jiangxianli.com/?page=1
高可用全球免费代理IP库
https://www.scjuchuang.com/goods?attr=3&page=1
所需要的东西的明文可能没有 但是其对应的英文可能有
response.json()
response.xpath()
两种方式都可以解析
https://m.imooc.com/wenda/detail/578141
javascript中(function()的(function() 的(function()的代表什么意思哈?
20210802
当找不到post请求的时候 post页面出现之后会消失的
可以把加载速度调慢,
出现需要的页面的时候 点上面的红点停止
显示method
第一种方法
import scrapy post_data = {"username": "18113225168","password": "a123456","vildCode": ""}yield scrapy.FormRequest(url='https://www.scjuchuang.com/api/login',method='post',meta={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36","Cookie": "anonymid=j3jxk555-nrn0wh; _r01_=1; _ga=GA1.2.1274811859.1497951251; _de=BF09EE3A28DED52E6B65F6A4705D973F1383380866D39FF5; ln_uact=mr_mao_hacker@163.com; depovince=BJ; jebecookies=54f5d0fd-9299-4bb4-801c-eefa4fd3012b|||||; JSESSIONID=abcI6TfWH4N4t_aWJnvdw; ick_login=4be198ce-1f9c-4eab-971d-48abfda70a50; p=0cbee3304bce1ede82a56e901916d0949; first_login_flag=1; ln_hurl=http://hdn.xnimg.cn/photos/hdn421/20171230/1635/main_JQzq_ae7b0000a8791986.jpg; t=79bdd322e760beae79c0b511b8c92a6b9; societyguester=79bdd322e760beae79c0b511b8c92a6b9; id=327550029; xnsid=2ac9a5d8; loginfrom=syshome; ch_id=10016; wp_fold=0"},callback=self.login,formdata=post_data)scrapy 利用FormRequest 实现post 模拟登陆##############################
第二种需要数据更少的post请求登陆
import scrapydef parse(self, response):#构造post数据post_data = {"username":"18030535053","userpass": "123456","do": "login"}yield scrapy.FormRequest.from_response(response=response,callback=self.login,formdata=post_data)
##########################################
第二种post请求方法
import requests
import json
# 简单爬虫post请求 首先先用这种简单的方式 测试一下是否能够成功data = {"username": "18113225168","password": "a123456","vildCode": ""}headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"}
cookies={ "Cookie":"anonymid=j3jxk555-nrn0wh; _r01_=1; _ga=GA1.2.1274811859.1497951251; _de=BF09EE3A28DED52E6B65F6A4705D973F1383380866D39FF5; ln_uact=mr_mao_hacker@163.com; depovince=BJ; jebecookies=54f5d0fd-9299-4bb4-801c-eefa4fd3012b|||||; JSESSIONID=abcI6TfWH4N4t_aWJnvdw; ick_login=4be198ce-1f9c-4eab-971d-48abfda70a50; p=0cbee3304bce1ede82a56e901916d0949; first_login_flag=1; ln_hurl=http://hdn.xnimg.cn/photos/hdn421/20171230/1635/main_JQzq_ae7b0000a8791986.jpg; t=79bdd322e760beae79c0b511b8c92a6b9; societyguester=79bdd322e760beae79c0b511b8c92a6b9; id=327550029; xnsid=2ac9a5d8; loginfrom=syshome; ch_id=10016; wp_fold=0"
}
response=requests.post('https://www.scjuchuang.com/api/login',headers=headers,cookies=cookies,data=data)
print(response.text)
https://blog.csdn.net/qq_43546676/article/details/89043445
网络爬虫—对于scrapy框架中的Request()、FormRequest()、FormRequest.from_response()做一个小结
错Missing scheme in request url: h(翻译为:请求URL中的丢失整体链接:在h开始的位置)所以需要我们将整个链接放在只有一个元素的list中,使用修改后list.append()将一个链接完整的放置在list[0]中。
post 跳转网址
Yc:
可以登录
Yc:
代码没有写好吧
wang shi yang:
啊 难道是我没设cookies 和headers
wang shi yang:
恩恩
Yc:
headers 是必须条件,不管网站有没有检查headers 都建议带上
wang shi yang:
好的
先用最简单的request方式先测试是否可以用
https://blog.csdn.net/weixin_42081389/article/details/102455273
python爬虫之scrapy 框架学习复习整理二–scrapy.Request(自己提取url再发送请求)
Yc:
看情况,网站爬多少数据会封号,还有封几天
wang shi yang:
大部分情况下 你是怎么配置的 因为你说的这个问题 我们也不清楚
Yc:
测试阶段2-3个就行了 ,具体还要根据实际情况,先用1-2个账号试试多久封一次,封一次是永久封还是封几天,还是不封账号
wang shi yang:
好的 ip地址呢
wang shi yang:
也要先测试吗
Yc:
也要测试
wang shi yang:
如果不测试的话 大部分情况下 你配置的多少
Yc:
1个账号
Yc:
最多两个
wang shi yang:
ip 呢https://www.abuyun.com/http-proxy/products.html
ip代理厂家Yc:
https://www.abuyun.com/http-proxy/products.html
Yc:
我一直用的都是这个ip
wang shi yang:
嗯嗯 ip 数量呢
wang shi yang:
你一般配置的多少
Yc:
没有数量限制,这个是转发请求
Yc:
就是你的http请求发送到阿布云的服务器上 阿布云的服务器再去帮你请求目标网站
wang shi yang:
这个网站相当于是代理ip的功能 对吧
wang shi yang:
明白
Yc:
是的
wang shi yang:
可以直接嵌入到scrapy里面吧
wang shi yang:
我的意思是可以直接写在scrapy里面对吧
Yc:
可以
Yc:
接入参考这里
Yc:
https://www.abuyun.com/http-proxy/dyn-manual.html
反扒策略
https://blog.csdn.net/qq_33472765/article/details/80953078
scrapy 保存
https://blog.csdn.net/weixin_30312563/article/details/95904496
https://www.cnblogs.com/dahuag/p/8902043.html
设置代理ip池
设置多用户账号很简单
随机选择用户账号密码就行了
20210730
D:\合纵文件\【Python全系列】Python全系列之爬虫scrapy框架及案例\18-20爬虫课件V3.1\爬虫课件V3.1\爬虫课件/file/part04/4.2.html
scrapy基本步骤路径
工程步骤
所有的cookies
可以用selenium更简单的实现
20210729
出现502的原因是:对用户访问请求的响应超时造成的
把timeout时间设置长一些
https://blog.csdn.net/qq_33472765/article/details/80953078
scrapy json 保存
https://blog.csdn.net/xudailong_blog/article/details/83545991
scrapy 日志保存
run_scrapy.py: error: Unrecognized output format 'txt'. Set a supported one (('json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle')) after a colon at the end of the output URI (i.e. -o/-O <URI>:<FORMAT>) or as a file extension.
scrapy支持的文件保存方式
20210728
scrapy爬虫框架步骤
1.环境配置 尤其是时间
1.post登陆
2.所爬元素xpath的获取
3.下载
4.保存
https://www.cnblogs.com/chengxuyuanaa/p/12981212.html
selector的方法
pip_lx=re.findall(r’“pa”>.*<’,qt_leixi[1].extract())
selector的extract() 方法
20210727
https://blog.csdn.net/weixin_45112822/article/details/91910480
python爬虫自动登录github时获取authenticity_token,如果直接调用BeautifulSoup来找到name=authenticity_token的值是行不通的,此时会得到一个不一样的authenticity_token。所以解决办法是直接用xpath来采集路径得到authenticity_token
https://www.cnblogs.com/moyand/p/9047978.html
彻底理解cookie,session,token的使用及原理
爬虫可能遇到的问题
1.cookies需要更换的问题
2.ip地址的更换
20210726
最新scrapy官方文档
https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html
https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html
Python Scrapy中文教程,Scrapy框架快速入门!
重点 跑起来了
http://c.biancheng.net/view/2027.html
scrapy 官方
https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html
Python Scrapy中文教程,Scrapy框架快速入门!
http://c.biancheng.net/view/2027.html
Python3网络爬虫快速入门实战解析
https://blog.csdn.net/c406495762/article/details/78123502
python3爬虫入门实例_循序渐进Python3(十二)–0--爬虫框架入门实例
https://blog.csdn.net/weixin_36277530/article/details/113646722
python3爬虫 重点
https://cuijiahua.com/?s=%E7%88%AC%E8%99%AB&cat=4
https://so.csdn.net/so/search?q=python3%E7%88%AC%E8%99%AB&t=blog&u=c406495762
https://blog.csdn.net/c406495762/article/details/78123502
Python3 爬虫实战教程_w3cschool
https://www.w3cschool.cn/python3/python3-sktl2pwq.html
RUI.Z
AttributeError: module 'urllib' has no attribute 'urlencode'
https://www.cnblogs.com/RUI-Z/p/8617409.html
python3关于urllib中urlopen报错问题的解决
pip3 install urllib2 ERROR: Could not find a version that satisfies the requirement urllib2 (from versions: none)AttributeError: 'module' object has no attribute 'urlopen'
https://blog.csdn.net/pythonniu/article/details/51855035
https://www.runoob.com/html/html-examples.html html 实例
https://www.runoob.com/tags/html-reference.html
HTML 参考手册- (HTML5 标准) 各种标签
https://www.runoob.com/html/html-basic.html
这是一个链接
尖括号<a 是标签
href 是属性
相当于注释?
复合标签
属性和对应的值
css class 相当于别名
html 整个网页布局 以及一些网页静态属性的设置
css 动态属性的设置,更加灵活
javascript 实现更高级或者说是任何功能
XML 被设计用来传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
自我描述性:整个文件就是一篇文章
xml中的属性和文本
XML 属性值必须加引号
与 HTML 类似,XML 元素也可拥有属性(名称/值的对)。
在 XML 中,XML 的属性值必须加引号。
请研究下面的两个 XML 文档。 第一个是错误的,第二个是正确的:
Tove
Jani
date 是名称 12/11/2007是属性值
实体引用
元素名
XML 命名规则
XML 元素必须遵循以下命名规则:
名称可以包含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字母 xml(或者 XML、Xml 等等)开始
名称不能包含空格
可使用任何名称,没有保留的字词。
元素和属性
针对元数据的 XML 属性
有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 id 属性是一样的。这个实例向我们演示了这种情况:
Tove Jani Reminder Don't forget me this weekend! Jani Tove Re: Reminder I will not 上面的 id 属性仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。
在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
元数据和属性
ID索引
由于DOM“一切都是节点(everything-is-a-node)”,XML树的每个 Document、Element、Text 、Attr和Comment都是 DOM Node。
由上面例子可知, DOM 实质上是一些节点的集合。由于文档中可能包含有不同类型的信息,所以定义了几种不同类型的节点,如:Document、Element、Text、Attr 、CDATASection、ProcessingInstruction、Notation 、EntityReference、Entity、DocumentType、DocumentFragment等。
html,xml_网页开发_爬虫_笔记相关推荐
- 《网页开发手记》学习笔记之CSS和DIV
web标准是很多表现层技术标准的集合,由W3C制定,所谓表现层技术指网页前端技术,如HTML,XHTML,XML,CSS等. 在编写符合Web标准的网页时应该注意与浏览器的兼容性,因为目前还没有一个浏 ...
- cron定时器_爬虫_获取每日星座运势
applicationContext_service.xml <?xmlversion="1.0"encoding="UTF-8"?><be ...
- Python_爬虫_网页图片下载_その日の紋
Python_爬虫_网页图片下载_その日の紋 项目效果 项目需求 项目分析 URL分析 页面分析 项目实施 项目源码 项目效果 项目需求 目标页面:https://www.hanakomon.jp/c ...
- python 网页版笔记_【Python笔记】Python网页正文抽取工具
本文信息本文由方法SEO顾问发表于2016-05-2018:48:27,共 1153 字,转载请注明:[Python笔记]Python网页正文抽取工具_[方法SEO顾问],如果我网站的文章对你有所帮助 ...
- 【笔记】Cocos2d-x高级开发教程:制作自己的捕鱼达人 笔记一:序_前言_第一章
[笔记]Cocos2d-x高级开发教程:制作自己的<捕鱼达人> 笔记一:序_前言_第一章 转载请注明出处:http://blog.csdn.net/l_badluck/article/de ...
- python简单爬虫程序分析_[Python专题学习]-python开发简单爬虫
掌握开发轻量级爬虫,这里的案例是不需要登录的静态网页抓取.涉及爬虫简介.简单爬虫架构.URL管理器.网页下载器(urllib2).网页解析器(BeautifulSoup) 一.爬虫简介以及爬虫的技术价 ...
- airtest adb 远程连接_使用Airtest超快速开发App爬虫
想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...
- java爬移动端搜索引擎_尝试java开发搜索引擎爬虫
大家应该也知道百度搜索结果都会有一个百度快照,这是通过缓存服务器调用出来的页面信息,这样我们就可以通过百度快照快速的浏览网页信息,那么这个缓存服务器跟爬虫又有什么联系么? 我们来大致了解一下爬虫的基本 ...
- appium 多开_全面超越Appium,使用Airtest超快速开发App爬虫
想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...
最新文章
- iOS开发小技巧--textField成为密码框,view加载完后textField获取焦点
- adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)
- 如何在修改checkbox状态,不触发事件
- phpstorm遍历PHP数组,使用PHPStorm对齐数组的键值对
- 【python】获取51cto博客的文章列表
- how to undo git commit
- Java native方法availableProcessors()获取处理器数量的底层C++实现
- Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限(仅支持ubuntu桌面版、提权)
- Linux rmdir命令:删除空目录
- datagrip 导出数据库备份到本地
- ps清理原始数据程序_ps重要插件ACR最新版 让处理照片更简便 详尽说明附上 抓紧下载吧...
- 多线程下单例模式:懒加载(延迟加载)和即时加载
- 【可靠性测试】之容错性测试---测试检查点罗列
- pytorch gpu版本安装
- 2021全球程序员收入报告,字节跳动年薪274万元排第5!
- 处女座与小姐姐(三)
- android wifi传图片,「教程」将Mac电脑上的照片无线传到安卓手机上
- python全栈工程师薪水_Python工程师薪资待遇是多少?老男孩Python周末班
- qt 实现导航栏切换页面功能 stackedWidget
- 软件测试大学生求职信英语版,英语专业大学生求职信范文