爬虫大作业

1、选一个自己感兴趣的主题。

2、用python 编写爬虫程序,从网络上爬取相关主题的数据。

3、对爬了的数据进行文本分析,生成词云。

4、对文本分析结果进行解释说明。

5、写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。

6、最后提交爬取的全部数据、爬虫及数据分析源代码。

import requests
from bs4 import BeautifulSoup
#import jieba
import jieba.posseg as psg

f = open('content.txt','a+',encoding='UTF-8')
newsurl = 'http://you.ctrip.com/travels/asia120001/t3.html'
path='http://you.ctrip.com/travels/asia120001/t3-p'
res = requests.get(newsurl)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
# pages = int(soup.select('.numpage')[0].text)
#print(pages)    获取总页数
for news in soup.select('.ellipsis'):
    f.write(news.text+"")

for i in range(2, 500):
    pageUrl = path + '{}.html'.format(i)
    res = requests.get(pageUrl)
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, 'html.parser')
    for new in soup.select('.ellipsis'):
        f.write(new.text)
        f.write(" ")
f2 = open('content.txt', 'r',encoding='UTF-8')
text = f2.read()
wordlist = list(psg.cut(text))

set = set(wordlist)

dict = {}
for key in set:
    if key.flag.startswith('ns'):     #选出词性为地名的词语
     dict[key]=wordlist.count(key)    #词频统计
dictlist = list(dict.items())
dictlist.sort(key=lambda x: x[1], reverse=True)
for i in range(30):                  #前三十的词频
    print(dictlist[i])

高频词生成词云

通过爬取携程网的游记信息,统计出了亚洲前三十的热门旅游地区。由于程序运行速度的问题(自己算法有问题),只是爬取了前500页的游记,所以统计出来的结果应该不太准确。

原文地址:https://www.cnblogs.com/1996-yxl/p/8970011.html