HTML文档是互联网上的主要文档类型,但还存在如TXT、WORD、Excel、PDF、csv等多种类型的文档。网络爬虫不仅需要能够抓取HTML中的敏感信息,也需要有抓取其他类型文档的能力。下面简要记录一些个人已知的基于python3的抓取方法,以备查阅。
- 抓取TXT文档
在python3下,常用方法是使用urllib.request.urlopen方法直接获取。之后利用正则表达式等方式进行敏感词检索。
### Reading TXT doc ###
from urllib.request import urlopen
from urllib.error import URLError,HTTPError
import re
try:
textPage = urlopen("http://www.pythonscraping.com/pages/warandpeace/chapter1.txt")
except (URLError,HTTPError) as e:
print("Errors:\n")
print(e)
#print(textPage.read())
text = str(textPage.read())
#下面方法用正则匹配含1805的句子
pattern = re.compile("\..*1805(\w|,|\s|-)*(\.)")#不完美,简单示例
match = pattern.search(text)
if match is not None:
print(match.group())
#下面方法不用正则。先用.将句集分片,之后就可遍历了。
ss = text.split('.')
key_words = "1805"
words_list = [x.lower() for x in key_words.split()]
for item in ss:
if all([word in item.lower() and True or False for word in words_list]):
print(item)
上面的方法是已知目标网页为txt文本时的抓取。事实上,在自动抓取网页时,必须考虑目标网页是否为纯文本,用何种编码等问题。
如果只是编码问题,可以简单使用p