python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii
关于编码问题的终极解决方案:
在python的Lib\site-packages文件夹下新建一个sitecustomize.py
文件,输入:
import sys
sys.setdefaultencoding('gb2312')
这里要注意一点是:这里面你可以设置GBK或者utf8 或者其他类型的编码格式,不一定非要gb2312,主要看你操作的环境需要什么编码格式
mport urllib.requestimport re
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
html = html.decode('GBK')
return html
def getMeg(html):
reg = re.compile(r'******')
meglist = re.findall(reg,html)
for meg in meglist:
with open('out.txt',mode='a',encoding='utf-8') as file:
file.write('%s\n' % meg)
if __name__ == "__main__":
html = getHtml(url)
getMeg(html)
可以使用Python自带的HTMLParser模块解析HTML文档:HTMLParser的核心模块是org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。这个类有下面几个构造函数:
public Parser ()
public Parser (Lexer lexer, ParserFeedback fb)
public Parser (URLConnection connection, ParserFeedback fb) throws ParserException
public Parser (String resource, ParserFeedback feedback) throws ParserException
public Parser (String resource) throws ParserException
public Parser (Lexer lexer)
public Parser (URLConnection connection) throws ParserException
和一个静态类public static Parser createParser (String html, String charset)