資源簡介
1、對微博數據進行信息采集。
2、對微博數據進行文本特征項抽取。
3、對文本進行向量化。
4、采取相似度公式進行相似度計算和對比。
5、采用K均值聚類算法進行聚類。
6、結合導致微博熱點話題產生的各個因素提出了一個用來計算話題熱度的公式,進行熱度評估。
2、對微博數據進行文本特征項抽取。
3、對文本進行向量化。
4、采取相似度公式進行相似度計算和對比。
5、采用K均值聚類算法進行聚類。
6、結合導致微博熱點話題產生的各個因素提出了一個用來計算話題熱度的公式,進行熱度評估。

代碼片段和文件信息
#?coding:utf-8
#?version:python3.7
#?author:Ivy
import?random
import?requests
import?re
#?爬取代理網站上可以用的代理,建立代理池
class?Proxies:
????def?__init__(self):
????????self.proxy_list?=?[]
????????self.headers?=?{
????????????“User-Agent“:?“Mozilla/5.0?(Windows?NT?10.0;?WOW64)?AppleWebKit/537.36?(KHTML?like?Gecko)?“
??????????????????????????“Chrome/45.0.2454.101?Safari/537.36“
????????????‘Accept-Encoding‘:?‘gzip?deflate?sdch‘
????????}
????#?爬取西刺代理的國內高匿代理
????def?get_proxy_nn(self):
????????proxy_list?=?[]
????????res?=?requests.get(“http://www.xicidaili.com/nn“?headers=self.headers)
????????ip_list?=?re.findall(‘(\d+\.\d+\.\d+\.\d+) ‘?res.text)
????????port_list?=?re.findall(‘(\d+) ‘?res.text)
????????for?ip?port?in?zip(ip_list?port_list):
????????????proxy_list.append(ip?+?“:“?+?port)
????????return?proxy_list
????#?驗證代理是否能用
????def?verify_proxy(self?proxy_list):
????????for?proxy?in?proxy_list:
????????????proxies?=?{
????????????????“http“:?proxy
????????????}
????????????try:
????????????????if?requests.get(‘http://www.baidu.com‘?proxies=proxies?timeout=5).status_code?==?200:
????????????????????if?proxy?not?in?self.proxy_list:
????????????????????????self.proxy_list.append(proxy)
????????????????????print(‘Success‘proxy)
????????????except:
????????????????print(‘Fail‘proxy)
????#?保存到ippool這個List里
????def?save_proxy(self):
????????ippool=[]
????????print(“開始存入代理池...“)
????????#?把可用的代理添加到代理池中
????????for?proxy?in?self.proxy_list:
????????????proxies={“http“:proxy}
????????????ippool.append(proxies)
????????return?ippool
#?使用上面的類建立代理池
def?buildippool():
????p?=?Proxies()
????results?=?p.get_proxy_nn()
????print(“爬取到的代理數量“?len(results))
????print(“開始驗證:“)
????p.verify_proxy(results)
????print(“驗證完畢:“)
????print(“可用代理數量:“?len(p.proxy_list))
????ippool?=?p.save_proxy()
????return?ippool
#?隨機選擇一個代理
def?random_ip(ippool):
????num?=?random.randint(0len(ippool)-1)?#隨機選一個0到10的整數
????return?ippool[num]
if?__name__?==?‘__main__‘:
????ippool?=?buildippool()
????print(ippool)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????56179??2020-02-15?17:29??article.csv
?????文件????????2354??2020-02-13?13:58??buildip.py
?????文件???????49990??2020-02-15?17:29??cut.txt
?????文件???????????0??2020-02-15?17:26??error.txt
?????文件?????????997??2020-02-15?20:19??matrix.py
?????文件????????3958??2020-02-15?17:27??spider.py
?????文件????????2888??2020-02-15?17:17??td_idf.py
?????文件????????1025??2020-02-15?17:14??test.py
- 上一篇:AHP層次分析法Python實現代碼.rar
- 下一篇:維吉尼亞唯密文破解
評論
共有 條評論