做文本分析时,在很多情况下,需要我们自己去爬外部网站的数据,由于不同的网站有不同的网页结构,所以处理起来就需要根据网页不同去做解析。解析网页使用的语言为python,因为他们提供了很多的类似插件的工具包,最终比较一下,使用的是requests包和soupy包,网页爬的数据做为以后文本分析处理的基础,关于本篇文章使用的工具包的相关参考文档如下:
http://www.python-requests.org/en/latest/
http://soupy.readthedocs.org/en/stable/index.html
下面以两个例子来说明:解析豆瓣网站的书评,把用户评分,评分时间和评分内空取出来,并保存成cvs格式的文档。爬豆瓣网书评时需要注意服务器会返回403错误,还有就是保存文件时可能会因为编码问题导致csv文件保存失败。实现部分请直接看代码:
我们以http://book.douban.com/subject/26425831/comments/为例,做数据抓取:
def get_db_book_review(data_list, item_id, page):
# 需要抓取网页的URL地址
target_url = "http://book.douban.com/subject/" + str(item_id) + "/comments/hot?p=" + str(page)
logging.info("当前抓取的网页地址为:" + target_url)
# 设置User-Agent,如果没有配会报403错误
client = requests.session()
client.headers = {'User-Agent': 'Reddit API - update profile'}
target_response = client.get(target_url)
logging.info(target_re