爬蟲實例 爬取美團評論

爬蟲爬取美團評論

導入庫是由於庫裏有咱們須要用的函數,這些函數能幫咱們實現某些功能mysql

import requests
import json
import pymysql

你要提取什麼數據?web

假如咱們要提取美團一家娛樂場所的評論sql

連接地址:"https://i.meituan.com/xiuxianyule/api/getCommentList?poiId=184022819&offset=0&pageSize=10&sortType=1&mode=0&starRange=10%2C20%2C30%2C40%2C50&tag=數據庫

爬取這些評論
在這裏插入圖片描述
發送請求,得到響應。
咱們已經有url,能夠經過瀏覽器向服務器發送請求了。但實際是咱們並非經過瀏覽器向服務器發送請求的,而是經過爬蟲。若是服務器識別出來請求時爬蟲發出來的,那麼咱們就會被屏蔽掉,得到不了任何響應。因此咱們要把咱們寫的爬蟲包裝成瀏覽器。
那咱們如何在向服務器發送請求的時候,不被識別爲爬蟲。要想不被識別爲爬蟲,那就須要先假裝成瀏覽器,這須要在發送請求的時候加上headers參數。json

在這裏插入圖片描述這裏就是咱們要的東西
接下來是代碼展現api

import requests
import json
import pymysql
#建立數據庫鏈接
try:
    conn=pymysql.connect(host="localhost",user="root",passwd="123456",db="qu")
except:
    print("數據庫鏈接失敗")
#建立遊標對象
cur=conn.cursor()
#假裝瀏覽器
headers_dict={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36"
}
def pc_comment():
    url="https://i.meituan.com/xiuxianyule/api/getCommentList?poiId=184022819&offset=0&pageSize=10&sortType=1&mode=0&starRange=10%2C20%2C30%2C40%2C50&tag="
    response=requests.get(url,headers=headers_dict)
    #將json字符串轉換成字典
    dict1=json.loads(response.text)
    # print(dict1["data"]["commentTagDTOList"])
    for item in dict1["data"]["commentTagDTOList"]:
        zz=item["count"]
        rq=item["tag"]
        print(rq)
        #聲明sql語句
        sql="insert into test(name,talk) value('"+str(zz)+"','"+rq+"')"
        cur.execute(sql)
        conn.commit()
    conn.close()
pc_comment()

由於有些網站不是異步請求,因此在這裏咱們不須要寫代理瀏覽器

運行結果:
在這裏插入圖片描述再到數據庫中查看,是否是已經成功導入數據庫中了
在這裏插入圖片描述服務器