1.选一个自己感兴趣的主题或网站。(所有同学不能雷同)
爬取食谱网(香哈网)的食谱内使用过的食材
2.用python 编写爬虫程序,从网络上爬取相关主题的数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | from bs4 import BeautifulSoup as bs from urllib.request import Request import urllib.request as ur import re def getHtml(url): header = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" } req = Request(url, headers = header) html = ur.urlopen(req).read().decode( 'utf-8' ) return html def getUrls(pageHtml): soup = bs(pageHtml, 'html.parser' ) w = soup.select( '.s_list li a' ) urls = [] for a in w: url = a.get( 'href' ) urls.append(url) return urls def getDetailInfo(url): try : html = getHtml(url) soup = bs(html, "html.parser" ) tr = soup.select( 'div[class="cell"]' ) for td in tr: content = td.text c = re.findall(r '\w+' , str (content))[ 0 ] print (c) return c except : pass if __name__ = = "__main__" : pageurls, a_list = [], [] cpageurl = 'https://www.xiangha.com/caipu/z-jiachangcai/hot-' num = 1 for i in range ( 86 ): pageurl = cpageurl + str (num) num + = 1 pageurls.append(pageurl) # 请求每个主页获得主页所有的菜名的网址并打印输出网址信息 for purl in pageurls: # print("page:", purl) pageHtml = getHtml(purl) urls = getUrls(pageHtml) # print(urls) # # 解析获得的每个网址的信息 for url in urls: a_list.append(getDetailInfo(url)) doc = open ( 'data2.txt' , 'w' ) for a in a_list: doc.write( str (a) + '\n' ) doc.close() |
3.对爬了的数据进行文本分析,生成词云。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator from scipy.misc import imread import jieba import re text = '' path = 'C:\\Users\\Administrator\\Desktop' f = open (path + '\\data2.txt' , 'r' ).read() info = re.sub( '\s+' , '', f) text + = ' ' .join(jieba.lcut(info)) # backgroud_Image = imread(p + '\\ju.PNG') wc = WordCloud( width = 500 , height = 500 , margin = 2 , background_color = 'white' , # 设置背景颜色 # mask=backgroud_Image, # 设置背景图片 font_path = 'C:\Windows\Fonts\STZHONGS.TTF' , # 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字 max_words = 2000 , # 设置最大现实的字数 stopwords = STOPWORDS, # 设置停用词 max_font_size = 150 , # 设置字体最大值 random_state = 42 # 设置有多少种随机生成状态,即有多少种配色方案 ) wc.generate_from_text(text) wc.to_file(path + '\\food.jpg' ) |
4.对文本分析结果进行解释说明。
5.写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。
主要问题:因为在反复测试爬取该网站的次数太多,使得该网站禁止了我的Ip,最后换了多台电脑和网络才能成功爬去想要的信息
6.最后提交爬取的全部数据、爬虫及数据分析源代码。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步