Python爬虫大数据采集与挖掘-微课视频版-课件 第二版-2 Web页面及相关技术.ppt
Python3中的字符串默认的编码为unicode,因此,gbk、gb2312等字符编码与utf-8编码之间都必须通过unicode编码才能互相转换。即在python中,使用encode()将unicode编码为utf-8、gbk等,而使用decode()将utf-8、gbk等字符编码解码为unicoden=大数据#unicodeg=n.encode(gbk)#gbku=n.encode(utf-8)#utf-8g2=n.encode(gb2312)#gb2312g2u=g.decode(gbk).encode(utf-8)#gbk转成utf-8Python对编码转换的支持网页中的编码和Python处理不同的网站的编码并不完全相同,使用爬虫解析文本信息的时候需要考虑网页的编码方式,否则获得的结果可能是乱码。可以从网页的charset属性中看到其编码,例如查看网页源代码,检查网页编码如metacharset=utf-8指定了网页的编码为utf-8。用于解析文本的Python库主要有BeautifulSoup。BeautifulSoup使用编码自动检测字库(unicodeDammit、chardet等)来识别输入文档的编码,并将其转换成unicode编码;同时,BeautifulSoup将输出文档自动转换成utf-8编码。自动检测一个页面编码方式,可以通过chardet包来进行,需要事先安装。具体方法如下。?importchardetimportrequestsres=requests.get()cs=chardet.detect(res.content)#通过响应信息的content属性来判断页面的编码方式chardet.detect的检测结果是一个字典,如下所示,字典的关键字包含encoding和confidence等,其中前者的值就是页面编码,后者表示自动检测时对结果的确信度[0,1]。{encoding:UTF-8-SIG,confidence:1.0,language:}因此,可以通过cs[encoding]来得到页面编码。URL中的汉字编码/s?ie=utf-8f=8rsv_bp=1rsv_idx=1tn=baiduwd=%E5%A4%A7%E6%95%B0%E6%8D%AEfenlei=256rsv_pq=d8be03rsv_t=b509eYYh8nGUeDFm46I8gUisdHT1AVO2rSeArcfJvACEO64YYJLpzyb%2FhEIrqlang=cnrsv_enter=1rsv_dl=tbrsv_sug3=11rsv_sug1=14rsv_sug7=101rsv_sug2=0rsv_btype=iinputT=4506rsv_sug4=4506提纲HTML语言规范编码体系与规范在Web页面处理中使用正则表达式爬虫与大数据分析中相关Python基础网络爬虫的一个基本功能是根据URL进行页面采集,因此,从页面中提取URL是爬虫的共性技术问题。由于超链接的表示通常具有固定的模式,因此在具体实现页面链接提取时,采用正则表达式匹配方法是比较简易的方法。Python中,re模块提供了正则表达式匹配所需要的功能。匹配和搜索分割字符串匹配和替换最常用的函数是findall,其函数原型为:findall(pattern,string[,flags])其中,string为输入的字符串,pattern是指定的匹配模式,flags是一个可选参数,用于表示匹配过程中的一些选项。函数返回结果一个列表。.通配符:代表任意字符,除\n以外,一个点一个字符ret=re.findall(m...e,catandmouse)#[‘mouse’]*重复匹配允许*之前的一个字符重复多次ret=re.findall(ca*t,caaaaatandmouse)#[‘caaaaat’]**Python爬虫大数据采集与挖掘(2)
--Web页面及相关技术《Python爬虫大数据采集与挖掘》第二版.微课视频版(清华大学出版社,2025)教材《Python爬虫大数据采集与挖掘》及配套公众号
(当当、京东可购书)提纲HTML语言规范编码体系与规范在Web页面处理中使用正则表达式爬虫与大数据分析中相关Python基础HTML标签html标签很多,从闭合的角度可以分为闭合标签与空标签。body和