Python post 抓取数据时,遇 unicode 匹配问题 【解法】 及 知识点

知识点来:先上代码。看懂的就直接用。不费话。
 
# -*- coding: utf-8 -*-
 
from bs4 import BeautifulSoup as bs

import urllib, json, re
 
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
params = {}
params['username']= "abc"
params['passwd'] = "pwd"
 
params = urllib.urlencode(params)
data = urllib.urlopen(siteurl, params)
html = data.read()
soup = bs(html,'html.parser' , from_encoding='utf-8')
content = soup.prettify( formatter="html" )
 
contentStr = soup.get_text()
 
out = re.findall(r" (.*?) 这里可以用中文",contentStr)
print out
 
 
----
知识点1:
开头要用好
# -*- coding: utf-8 -*-
这样先保证执行时编码正确
 
知识点2: 
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
此条用于 让打开的文件及过程中的数据,编码正确。
 
知识点 3 :
正则中的内容中文输入法要写正确。 双引号要用得小心。括号要识别好是中文的还是英文的。
 
知识点4: 
此法主要是 用于 python post 请求数据 
params = urllib.urlencode(params)
data = urllib.urlopen(siteurl, params)
 
以下为 get 的方法: 
data = urllib.urlopen(siteurl)
 
知识点5:
此为  python 2 的方法。python 3有点小差别。
 
----
以上知识点记住了,抓数据就比较简单了。
 
 
 
posted @ 2020-02-16 18:40  大师傅工具箱  阅读(445)  评论(0)    收藏  举报