1 将NCR字符转换成真实字符
以 &# 或 &#x 开头的字符串叫做 NCR 字符,在浏览器中查看会直接转换成中文。
一个Numeric Character Reference编码是由一个与号(&)跟着一个井号(#), 然后跟着这个字符的Unicode编码值, 最后跟着一个分号组成的。
在爬虫中使用 lxml 解析得到网页内容的html代码时,网页中的中文都会显示成 NCR 字符的形式。
import html
print(html.unescape("起翻落著。"))
起翻落著。
2 繁体字转简体字
(1)下载zh_wiki.py 和 langconv
https://github.com/skydark/nstools/blob/master/zhtools/zh_wiki.py
https://github.com/skydark/nstools/blob/master/zhtools/langconv.py
(2)将下载的 langconv.py 和 zh_wiki.py,放在python代码所在目录即可使用
from langconv import *
def simple2tradition(line):
#将简体转换成繁体
line = Converter('zh-hant').convert(line)
return line
def tradition2simple(line):
# 将繁体转换成简体
line = Converter('zh-hans').convert(line)
return line
tradition = "手攤開,頭上已溢出了汗珠。"
print(tradition)
simple = tradition2simple(tradition)
print(simple)
3 爬虫selenium
“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”
(1)打开chrome浏览器,选择设置->关于chrome,查看自己浏览器的版本。
(2)Http://npm.taobao.org/mirrors/chromedriver/打开网站,找到适合自己的版本进行。
(3)解压步骤4中下载压缩包,找到chromedriver.exe复制到chrome的安装目录。
(4)将目录C:\Program Files (x86)\Google\Chrome\Application添加到环境变量path中。
from selenium import webdriver#导入库
import time
browser = webdriver.Chrome()#声明浏览器
url = 'url'
while True:
browser.get(url)#打开浏览器预设网址
time.sleep(2)
title = browser.find_element_by_class_name("text-overflow").text
title = tradition2simple(title)
print(title)
filename = title+".txt"
aa = browser.find_elements_by_tag_name("p")
for a in aa:
tmp = tradition2simple(a.text)
with open(filename,'a+',encoding="utf8") as fw:
fw.write(tmp+"\n")
zz = browser.find_elements_by_css_selector('.clearfix li')
ff = zz[0].find_element_by_tag_name("a")
url=ff.get_attribute("href")