用Python爬取了三大相親軟體評論區,結果...
阿新 • • 發佈:2020-12-07
> 小三:怎麼了小二?一副愁眉苦臉的樣子。
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193234263-1305287858.jpg)
> 小二:唉!這不是快過年了嗎,家裡又催相親了 ...
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193245500-399133161.jpg)
> 小三:現在不是流行網戀嗎,你可以試試相親軟體呀。
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193314701-1967549632.jpg)
> 小二:這玩意靠譜嗎?
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193327957-1088065722.jpg)
> 小三:我也沒用過,你自己看看軟體評論區吧。
> 小二:這 ... 不過也只能先到評論區看看了。
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193338885-97850375.jpg)
本文以 360 手機助手為例,地址為:`http://zhushou.360.cn/`,相親軟體選擇 3 個比較流行的,分別為:世紀佳緣、百合婚戀、有緣網,我們使用 Python 爬取軟體評論區,看看使用者評價情況。
先來看一下這三款軟體的下載量和好中差評佔比情況(下圖單位為萬次)。
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193410597-2076480275.png)
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193417251-1476010811.png)
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193422669-141281517.png)
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193427799-906002586.png)
下面開始爬取評論區,以世紀佳緣為例,首先,在搜尋框輸入世紀佳緣進行搜尋,如圖所示:
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193437547-1611310048.png)
接著,點選搜尋到的軟體進入其詳情頁,如圖所示:
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193447247-49169585.png)
將頁面向下拉就可以看到評論區了,如圖所示:
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193458031-411758785.png)
此時開啟開發者工具並選擇`Network`項,點選檢視更多評論,然後可以看到`getComments`請求,如圖所示:
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193508352-941793006.png)
通過這個請求我們就可以動態獲取評論區資料了,其中引數`star`為開始的評論索引,引數`count`為每次載入的評論個數,可以通過引數`callback`、`baike`指定不同應用,爬取程式碼實現如下:
```python
headers = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, sdch",
"Accept-Language": "zh-CN,zh;q=0.8",
"Connection": "keep-alive",
"Host": "comment.mobilem.360.cn",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER"
}
def comment_spider(param, file_name):
base_url = "http://comment.mobilem.360.cn/comment/getComments?c=message&a=getmessage&&count=50"
start = 0
for i in range(1, 50):
print("第{}頁".format(i))
url = base_url + param + "&start=" + str(start)
r = requests.get(url, headers=headers)
data = re.findall("{\"errno\"(.*)\);}catch\(e\){}", r.text)
# 轉為 Json 格式
jdata = json.loads("{\"errno\"" + data[0])
for message in jdata["data"]["messages"]:
content = message["content"]
print(content)
with open(file_name + ".txt", "a", encoding="utf-8") as f:
f.write(content)
start = start + 50
time.sleep(2)
```
我們將爬取的評論資料存到了 txt 檔案中。
接著,我們將評論資料進行詞雲展示,程式碼實現如下:
```python
with open("yy.txt", "r", encoding="utf-8") as f:
content = f.read()
stylecloud.gen_stylecloud(text=content, max_words=600,
collocations=False,
font_path="SIMLI.TTF",
icon_name="fas fa-heart",
size=800,
output_name="yy.png")
Image(filename="yy.png")
```
最後,通過詞雲看一下使用者對上述軟體的評價情況。
世紀佳緣:
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193522478-1204942643.png)
百合婚戀:
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193536274-1506297692.png)
有緣網:
![](https://img2020.cnblogs.com/blog/1497257/202012/1497257-20201207193546996-2000513541.png)
> 小二:看了有緣網的評論,我感覺自己和相親軟體無緣 ...
> 小三:...
原始碼在公眾號 **Python小二** 後臺回覆 **201207** 獲取。
**宣告:本文不構成對上述相親軟體的任何使用建議。**