1.选一个自己感兴趣的主题或网站。(所有同学不能雷同)
爬取食谱网(香哈网)的食谱内使用过的食材
2.用python 编写爬虫程序,从网络上爬取相关主题的数据。
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.对爬了的数据进行文本分析,生成词云。
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.最后提交爬取的全部数据、爬虫及数据分析源代码。
浙公网安备 33010602011771号