Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用BS4刮取Shopee用户评论_Python 3.x_Beautifulsoup - Fatal编程技术网

Python 3.x 如何使用BS4刮取Shopee用户评论

Python 3.x 如何使用BS4刮取Shopee用户评论,python-3.x,beautifulsoup,Python 3.x,Beautifulsoup,我正在学习Python3,并尝试在shopee产品页面上刮取用户评论,但发现一些错误 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__au

我正在学习Python3,并尝试在shopee产品页面上刮取用户评论,但发现一些错误

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)
但没有结果

[]

Process finished with exit code 0
如何显示某些审阅者的姓名


谢谢你的帮助,对不起我的英语:)

页面使用JavaScript加载评级。但是您可以使用
请求
模块来模拟它

例如:

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
印刷品:

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

--------------------------------------------------------------------------------
deviltfnt
Barang cepat sampai, bahannya bagus catoon
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")

sherly_riestyana
巴朗-大唐-塞苏艾-佩萨南。。。
Terima kasih ya。。。。。。。。。。
--------------------------------------------------------------------------------
s*******y
--------------------------------------------------------------------------------
魔鬼
在sampai,bahannya bagus catoon
导入请求
参数={
“筛选器”:“0”,
“旗帜”:“1”,
“项目ID”:“1991571675”,
“限制”:“59”,
“偏移量”:“0”,
“shopid”:“32031549”,
“类型”:“0”
}
def主(url):
r=requests.get(url,params=params.json())
对于r['data']['ratings']中的项目:
打印(项目['author\u username'])
主要(”https://shopee.co.id/api/v2/item/get_ratings")
输出:

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
谨此陈辞:

导入请求
从prettytable导入prettytable
参数={
“筛选器”:“0”,
“旗帜”:“1”,
“项目ID”:“1991571675”,
“限制”:“59”,
“偏移量”:“0”,
“shopid”:“32031549”,
“类型”:“0”
}
def主(url):
r=requests.get(url,params=params.json())
x=PrettyTable()
x、 字段名称=[“用户名”,“注释”]
对于r['data']['ratings']中的项目:
x、 添加行([item['author\u username',item['comment']))
打印(x)
主要(”https://shopee.co.id/api/v2/item/get_ratings")
输出:

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
+---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|用户名|注释|
+---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|sherly_riestyana | Barang datang sesuai pesanan|
|| Terima kasih ya|
|s*******y||

|deviltfnt | Barang cepat sampai,bahannya bagus Catoon你能分享URL吗?这里兄弟:这就是我想要的。谢谢兄弟