looklol
looklol

Reputation: 23

How To Scrape Shopee User Review With BS4

I'm learn python 3 and try to scrape user reviews at shopee product page, but find some error

from bs4 import BeautifulSoup as bs
import requests
import time

link = input()

page = requests.get(link)

soup = bs(page.content, 'html.parser')

name = soup.find_all('a', class_='shopee-product-rating__author-name')

print(name)

but no result

[]

Process finished with exit code 0

How to show some reviewers name?

Thanks for your help, sorry for my english :)

Upvotes: 2

Views: 2609

Answers (2)

Andrej Kesely
Andrej Kesely

Reputation: 195603

The page uses JavaScript to load ratings. But you can use requests module to simulate it.

For example:

import re
import json
import requests

url = 'https://shopee.co.id/Premium-Brill-Eighty-eight-Flannel-Shirt-077-i.32031549.1991571675'

r = re.search(r'i\.(\d+)\.(\d+)', url)
shop_id, item_id = r[1], r[2]
ratings_url = 'https://shopee.co.id/api/v2/item/get_ratings?filter=0&flag=1&itemid={item_id}&limit=20&offset={offset}&shopid={shop_id}&type=0'

offset = 0
while True:

    data = requests.get(ratings_url.format(shop_id=shop_id, item_id=item_id, offset=offset)).json()

    # uncomment this to print all data:
    # print(json.dumps(data, indent=4))

    i = 1
    for i, rating in enumerate(data['data']['ratings'], 1):
        print(rating['author_username'])
        print(rating['comment'])
        print('-' * 80)

    if i % 20:
        break

    offset += 20

Prints:

sherly_riestyana
Barang datang sesuai pesanan...
Terima kasih ya..........
--------------------------------------------------------------------------------
s*****y

--------------------------------------------------------------------------------
deviltfnt
Barang cepat sampai, bahannya bagus catoon๐Ÿ’ฏ. Itu difoto pake flash sama yang engga kelihatan lebih terang. Real pict sih menurut gue. Kaget liat harga aslinya dan gue dapet murah bngt. Wahhh kalo bisa sampe bintang 10 gue kasih deh!! ๐Ÿ‘๐Ÿป๐Ÿ‘๐Ÿป๐Ÿ‘๐Ÿป 
--------------------------------------------------------------------------------
machito83
Bahan bagus....tpi kok warna agak beda say, sama gambarnya....,kamera nya terlalu keterangan mungkin yak 
--------------------------------------------------------------------------------
4andis
Kualitas Premium, Terimakasih Sudah amanah... Harga tidak membohongi kualitas 
--------------------------------------------------------------------------------
nila130893
Saya sukaaaaaaaa sekaleeeeeeee
Trimakasi sis semoga barang nya laris manis yah๐Ÿ™
--------------------------------------------------------------------------------

...and so on.

Upvotes: 2

import requests


params = {
    "filter": "0",
    "flag": "1",
    "itemid": "1991571675",
    "limit": "59",
    "offset": "0",
    "shopid": "32031549",
    "type": "0"
}


def main(url):
    r = requests.get(url, params=params).json()
    for item in r['data']['ratings']:
        print(item['author_username'])


main("https://shopee.co.id/api/v2/item/get_ratings")

Output:

s*****y
deviltfnt
machito83
4andis
nila130893
herryhaz
muhaeminahmad
egarifarr
ris0802
gilangpangestu97
daffarb
andri270702
muhammadrestus
86499hb8xa
nanangazari
agusgunawan530
okhai
agganggitarahmawati
prillyoctavia
agustinadamayanti26
budianugrh
guse8693
rizkyawali
abeng_palu
defrized
maul0712
akaieria
didikprayugo1616
d*****9
susi557
muntafiah.
faizaharinii
lisnawww
abdulrozak57910
0*****.
asmaul435
d*****i
gerryalaneee
r*****n
miftahud08
aristna354
ummy_naqia
hildasaf
asfiatulistianah
dhinginanjar
abdul825
irfan_yusup123
evahelen
riskanurhidayani
rikkifirnanda01
riyan.shop
aldinugraha107
cicimulyani19
harisprabowo100
reza.bge
mhzulhamdi
asepnurjaman96
riskaarami
dheaamandapute

With comments:

import requests
from prettytable import PrettyTable

params = {
    "filter": "0",
    "flag": "1",
    "itemid": "1991571675",
    "limit": "59",
    "offset": "0",
    "shopid": "32031549",
    "type": "0"
}


def main(url):
    r = requests.get(url, params=params).json()
    x = PrettyTable()
    x.field_names = ["UserName", "Comment"]
    for item in r['data']['ratings']:
        x.add_row([item['author_username'], item['comment']])
    print(x)


main("https://shopee.co.id/api/v2/item/get_ratings")

Output:

+---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|       UserName      |                                                                                                                      Comment                                                                                                                      |
+---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|   sherly_riestyana  |                                                                                                          Barang datang sesuai pesanan...                                                                                                          |
|                     |                                                                                                             Terima kasih ya..........                                                                                                             |
|       s*****y       |                                                                                                                                                                                                                                                   |
|      deviltfnt      | Barang cepat sampai, bahannya bagus catoon๐Ÿ’ฏ. Itu difoto pake flash sama yang engga kelihatan lebih terang. Real pict sih menurut gue. Kaget liat harga aslinya dan gue dapet murah bngt. Wahhh kalo bisa sampe bintang 10 gue kasih deh!! ๐Ÿ‘๐Ÿป๐Ÿ‘๐Ÿป๐Ÿ‘๐Ÿป  |
|      machito83      |                                                                     Bahan bagus....tpi kok warna agak beda say, sama gambarnya....,kamera nya terlalu keterangan mungkin yak                                                                      |
|        4andis       |                                                                                   Kualitas Premium, Terimakasih Sudah amanah... Harga tidak membohongi kualitas                                                                                   |
|      nila130893     |                                                                                                           Saya sukaaaaaaaa sekaleeeeeeee                                                                                                          |
|                     |                                                                                                  Trimakasi sis semoga barang nya laris manis yah๐Ÿ™                                                                                                 |
|       herryhaz      |                                                                        Kualitas sangat baik, produk original, harga mantul,  pengiriman mantul,  recommended seller banget                                                                        |
|                     |                                                                                                                   Langganan gan                                                                                                                   |
|    muhaeminahmad    |                                                                                        Barang sudah nyampe,,, kualitas ok. Bahan nya jg adem. Pokok nya ok.                                                                                       |
|      egarifarr      |                                              Joss gandoss pengirimann cepat pengemasan cepatt responn jugaa baik meskipun order nya cod, kemejanya jugaa okee sesuaii gambarr mantulll pokok ee๐Ÿ‘๐Ÿ‘๐Ÿ‘๐Ÿ‘๐Ÿ˜๐Ÿ˜                                             |
|       ris0802       |                                                                                                       Puas deh pokoknya pelayanan ditoko ini                                                                                                      |
|   gilangpangestu97  |                                                                        Maaf saya kasih bintang 3, karena ada kesalahan pengiriman saya pesen  ukuran m yg dikirim malah xl                                                                        |
|       daffarb       |                                                                                                       Mantap lur,next order disini lagi lah                                                                                                       |
|     andri270702     |                                                                                                     Jahitan kurang rapi bahannya kasar banget                                                                                                     |
|    muhammadrestus   |                                                                                                                                                                                                                                                   |
|      86499hb8xa     |                                                                                                                Memuaskan sekali....                                                                                                               |
|     nanangazari     |                                                                              Ikutaan xlnya ngpas banget Ama badan saya ukuraan xlnya bisa dilebihin besar lagi maksih                                                                             |
|    agusgunawan530   |                                                                                      Alhamdulillah barang sudah sampe sesuai sama yang di gambar top markotop                                                                                     |
|        okhai        |                                                                                                                        Puas                                                                                                                       |
| agganggitarahmawati |                                                                                    Paket sampai dengan cepat, bahan bagus, terbungkus rapi, nice , pertahankan                                                                                    |
|    prillyoctavia    |                                                                                                        TOP! Bahan, motif, dan warna bagusss                                                                                                       |
| agustinadamayanti26 |                                                                                                                                                                                                                                                   |
|      budianugrh     |                                                                                                   bahan bagus tebel lembut juga bahan nya tenks                                                                                                   |
|       guse8693      |                                                                 Sudah 2 kali saya belanja di toko ini selalu puas,respon cepat barang yg dikirim sesuai,sukses terus buat toko ini                                                                |
|      rizkyawali     |                                                                                                              Cepet bray sehari sampai                                                                                                             |
|      abeng_palu     |                                                                    Sesuai lah meski,cuma pengiriman dari jnt nya lambat sangat.kalo untuk produknya di jamin gak bakalan nyesel                                                                   |
|       defrized      |                                                                                                                                                                                                                                                   |
|       maul0712      |                                                                                                                   Mantappp deh                                                                                                                    |
|       akaieria      |                                                                        Udh yg kesekian kali beli disini, selalu puas, barang oke, pengiriman oke bgt. Langganan pokoknya ๐Ÿ˜€                                                                        |
|   didikprayugo1616  |                                                                                                      mantaaapp.. sesuai gambar.. terimakasih                                                                                                      |
|       d*****9       |                                                                                            Kualitas produk sangat baik bahannya lainnya adem halus juga                                                                                           |
|       susi557       |                                                                                                       Selalu langganan. Karena barang bagus                                                                                                       |
|      muntafiah.     |                                                                                                Bahan bagus tapi mungkin warna nya aja kurang terang                                                                                               |
|     faizaharinii    |                                                                                                Ajsgsbsywbshshsbdhusjssbsjsjjsjssjwjwjwjwjsjsjwjsjsj                                                                                               |
|       lisnawww      |                                                                                               Bbbbbbbbbgss bbbbbbggggsssssss bbbbbbggggssssssssssss                                                                                               |
|   abdulrozak57910   |                                                                                                                      mantaap                                                                                                                      |
|       0*****.       |                                                                                                                      Mantappp                                                                                                                     |
|      asmaul435      |                                                                                             Pesanan nya sudah saya terima dengan selamat. Makasih....                                                                                             |
|       d*****i       |                                                                          Terima kasih barang sudah sampai dengan baik, bahan kemeja nya bagus lembut enak di pakainya..                                                                           |
|     gerryalaneee    |                                                                                                     Nyampe nya agak kusut... Tapibwajarlah....                                                                                                    |
|                     |                                                                                                   Barang nya bagus ini, bkn yg model berbulu....                                                                                                  |
|                     |                                                                                                Untuk harga segitu... Kualitas aku anggap OKE bnget                                                                                                |
|       r*****n       |                                                                                                                       Bagus                                                                                                                       |
|      miftahud08     |                                                                                                           Kedua kali nya the best banget                                                                                                          |
|      aristna354     |                                                                                                       Pengirimannya cepat mantab barang oke                                                                                                       |
|      ummy_naqia     |                                                                                                                   It's very good                                                                                                                  |
|       hildasaf      |                                                              Motif, warna, dan ukuran sesuai pesanan dan foto produk. Bahannya alus banget, mantaplah. Ps : XLnya ngga terlalu gede.                                                              |
|   asfiatulistianah  |                                                                                   Kualitas produk baik, produk original, harga produk sangat baik. Bahan lembut                                                                                   |
|     dhinginanjar    |                                                                                                                       Mantep                                                                                                                      |
|       abdul825      |                                                                                                                        None                                                                                                                       |
|    irfan_yusup123   |                                                                                          Barang nya udah sampe cepet sih lumayan, barangnya bagus ko adem                                                                                         |
|       evahelen      |                                                                                  Bahan nya tebal,,,adem, sesuai gambar puas belanja disini next order disini lagi                                                                                 |
|   riskanurhidayani  |                                                                                                          Ngga tau mau komen gimana lagi.                                                                                                          |
|                     |                                                                                                                   Sangat puas.                                                                                                                    |
|                     |                                                                                Sampai di sulawesi cuman sehariii saking cepatnya dalam pengemasan dan pengiriman.                                                                                 |
|                     |                                                                                                  Baru nyampe 6 baju langsung belanja lagi 3 baju.                                                                                                 |
|                     |                                                                                                       Padahal bulan lalu jga beli  7 baju ๐Ÿ˜ญ                                                                                                       |
|                     |                                                                                             Mulai dari Adek, sepupu, om dan doi semua suka bahannya.                                                                                              |
|                     |                                                                                                              Bkn bahan baju murahan.                                                                                                              |
|   rikkifirnanda01   |                                                                                            Barang original, ternyata kain nya halus ku kira agak kaku ๐Ÿ˜…                                                                                           |
|      riyan.shop     |                                                    Pesanannya udh nyampe kak. Kualitas produk sangat bagus. Tebal dan tidak murahan. Harga terjangkau. Warna sesuai pesanan. Terimakasih kak.                                                     |
|                     |                                                                                                               Recomended pokoknya.                                                                                                                |
|    aldinugraha107   |                                                                                                                     Saya suka                                                                                                                     |
|    cicimulyani19    |                                                                                                                                                                                                                                                   |
|   harisprabowo100   |                                                                                                                       Naice                                                                                                                       |
|       reza.bge      |                                                                                     Packing nya mantap , baru kali ini order bahan nya mantep next order pasti                                                                                    |
|      mhzulhamdi     |                                                                                     Barang mantap tapi utk ukurannya ngepas kyk L padahal udh ambil ukuran xl                                                                                     |
|    asepnurjaman96   |                                                                                                            Cukuplah  untk harga segini                                                                                                            |
|                     |                                                                                                          Estimasi pengiriman topmarkotop                                                                                                          |
|                     |                                                                                                      Saran aja diskusi chat di perbaiki lagii                                                                                                     |
|      riskaarami     |                                                 makasi gan barang sampai dengan aman, dan kurir ramah. dan barang sesuai dengan yang ada di picture dan respon penjual sangat cepat. terimakasih.                                                 |
+---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Upvotes: 2

Related Questions