1. HTML的代码文件
(1)打开Hbuilder开发工具,新建项目,点击右键新建一个HTML文档。
(2)在文档中写HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>产品列表</title>
</head>
<body>
这是产品页面
<b>好好学习,天天向上</b>
<h1>好好学习,天天向上</h1>
</body>
</html>
温馨提示:
常用的快捷键:
Ctrl+s:保存
ctrl+c:复制
ctrl+x:剪切
ctrl+v:粘贴
2. HTML的基本结构
对于HTML文件的后缀名一般为“html”或“htm”
2.1HTML的标签格式
(1)什么是HTML标签?
HTML标签是有开始标签和结束标签组成
开始标签:是被尖括号包围的元素名。
结束标签:是被尖括号包围的斜杠和元素名
<元素>内容 </元素>
例如:<b>好好学习天天向上</b>
注意:有些HTML标签是没有结束标签的, <hr/>
(2)单标签和双标签
双标签:例如:<b></b>
单标签:<hr/> <br/>
(3) 标签的属性
<font size="1">好好学习</font>
<font size="7">好好学习</font>
<h1 title="h1" style="color: red;">
我是一个标题标签
</h1>
3. HTML基本结构的认识
<!--<!DOCTYPE html>:文档声明,告知浏览器文档使用哪种HTML或XHTML规范,让浏览器通过正确的方式解析我们的网页,让网页能够正确的显示。-->
<!DOCTYPE html>
<!-- <html>标签:是网页的跟标签-->
<html>
<!--head是网页头,一般表示网页中描述信息-->
<head>
<!--
meta:提供网页的相关信息,有利于搜索引擎收录
charset="UTF-8": 设置网页编码方式为utf-8
name="Keywords" :设置网页关键字
name="viewport": 设置网页视窗大小
-->
<meta name="Keywords" content="HTML5前端开发工程师入门到精通课程"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<!-- <title></title>:表示网页的标题 -->
<title></title>
</head>
<body>
<!--
<body></body>:网页的主体内容,用户呈现的内容,比如文字,图片,链接,视频……
-->
</body>
</html>
4. HTML的注释
<!--这里是注释的内容-->
5. HTML的编码问题
常见编码个格式:
UTF-8:国际通用的编码格式
GBK/GB2312:中文编码字符
HTML的编码:<meta charset="UTF-8">
6. HTML规范
(1)html标签都是有尖括号包围的标签,比如<b>
(2)标签通常是成对存在,<b></b>,<h1></h1>
(3)HTML不区分大小写,我们建议小写。
(4)HTML可以嵌套,但是允许交叉嵌套
正确写法:<b> <h1>我很粗</h1> </b>
错误写法:
<b> <h1>我很粗 </b></h1>
篇主要介绍爬取500彩票网,获取所有双色球的开奖结果,写入到csv文件。
(1) 分析标题
通过分析,发现标题信息在如下地方显示:
私信小编007即可获取小编精心准备的资料呢!如有需要源码请单独私信!
(2) 分析开奖号码
通过分析,发现开奖号码在如下地方显示:
(3) 分析往期开奖结果url
通过分析,发现网页是通过一个下拉菜单,选择相应的期号,会自动跳转对应的网站。
网站规律就是http://kaijiang.500.com/shtml/ssq/+"期号"+.shtml
2、思路分析
先提取网页数据,用Beautiful Soup从网页抓取数据,然后通过正则表达式,提取想要的数据。
3、代码:
import requests
from bs4 import BeautifulSoup
import re
#获取网页数据,伪装成浏览器
def gethtml(url):
headers = {
"Use-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) Apple
WebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
}
req = requests.get(url,headers = headers)
req.encoding = "GBK"
html = req.text
bf = BeautifulSoup(html, "html.parser")
return bf
#爬取标题
def gettitle(html):
titlehtml = html.find_all("td", class_="td_title01")
titletxt = str(titlehtml).strip()
p1 = r'shtml">(.*?)<f.*?<strong>(.*?)</strong>.*?</font>(.*?)</a>
.*?right">(.*?)</span>'
titles = re.compile(p1, re.S).findall(titletxt)
qi = list(titles[0])
qi[2] = ('期')
return ''.join(qi)
#爬取红色球
def getred(html):
redhtml = html.find_all("li", class_="ball_red")
redtxt = str(redhtml).strip()
p1 = r'red">(.*?)</li>'
reds = re.compile(p1, re.S).findall(redtxt)
return '红球:' + ' '.join(reds)
#爬取蓝色球
def getbule(html):
bulehtml = html.find_all("li", class_="ball_blue")
buletxt = str(bulehtml).strip()
p1 = r'blue">(.*?)</li>'
bules = re.compile(p1, re.S).findall(buletxt)
return '蓝球:' + ' '.join(bules)
#获取所有url
def getlistnum(html):
listnumhtml = html.find_all("span", class_="iSelectBox")
p1 = r'href="(.*?)">'
listnums = re.compile(p1, re.S).findall(str(listnumhtml))
return listnums[1:]
url = 'http://kaijiang.500.com/shtml/ssq/18131.shtml'
def main():
html = gethtml(url)
htmlurls = getlistnum(html)
for htmlurl in htmlurls:
ssqhtml = gethtml(htmlurl)
a = gettitle(ssqhtml)
b = getred(ssqhtml)
c = getbule(ssqhtml)
#写入txt文件
with open(r'D:\1.txt','a') as f:
print(htmlurl)
f.write(a + '\n'+ b + '\n'+ c + '\n')
f.close()
if __name__ == "__main__":
main()
代码自行拿去用吧!输出文件:
到此结束!需要源码请后台私信小编即可哦!
假设需要劫持http响应并在html页面中注入一段js代码后再传回浏览器,实现在浏览器出现一个弹框消息提醒。
由于原始html页面编码格式存在UTF-8、GBK等多种编码格式,如果注入的js包含中文消息的话,那么在UTF-8或GBK编码的页面就会有一个出现乱码。有没有办法做到不管是针对GBK、UTF-8编码的页面都能做到正常显示而不会出现乱码哪?
首先来分析一下产生乱码的原因,我们在浏览器看到的信息都是通过图形学手段在显示器上呈现出来的,而实际保存在计算机硬件上的都是0和1(因为计算机实现是基于二进制),那么计算机要显示、传递信息就需要依靠一套规则把一串串的0和1识别为正确的字符,这就是编码。
例如01000001在ASCII编码规则下对应字母A。相同的0/1串,不同的编码解析出的字符一般是不同的,因此如果html页面按照UTF-8的编码解析正常,那么按照GBK的编码解析就会是乱码了。根据上面的示意图,假设注入的js代码为utf-8编码格式,而原始html编码格式也为UTF-8编码格式,那么最终注入这部分中的中文就能正常显示,但是如果原始html为GBK编码,那注入的这部分js代码的中文就会显示乱码。
有一种unicode统一编码字符集,目标是把所有文字、字符统一编码,也就是一串0/1组合在unicode字符集下对应的字符是唯一的,不会存在歧义。而js是支持解析unicode字符的,那么就可以在注入js中把要显示的消息统一转换为unicode编码,浏览器端去解析这个unicode编码,这样不管原始html是UTF-8还是GBK,都能正常显示中文。
原始注入js代码关于中文字符的部分
// utf-8编码格式
let message = "中文";解决乱码的注入js代码关于中文字符的部分
// utf-8编码格式
let message = "\\u4e2d\\u6587"; // 这个编码对应上面的message"中文"注意:
*请认真填写需求信息,我们会在24小时内与您取得联系。