繁体   English   中英

如何使用带有请求的不变 URL 抓取特定页面

[英]How to scrape specific pages with an unchanging URL with requests

我是 Python 的初学者,对网页抓取完全陌生。 目前,我正在尝试抓取此网页用于教育目的: https : //www.cdiscount.com/maison/achat-meuble-literie/dormipur-matelas-140x190-memoire-de-forme-16-c/ f-11755-v920t140190.html#rating

我真正想要的是检索多个页面的每个评论。 由于当我点击“precédent/suivant”(在法语中表示上一个/下一个)时 URL 不会改变,我不知道该怎么做。

请参阅链接上的图片:

我发现这个解释可以解决同样的问题: 如何使用不变的 URL 抓取多个页面 - Python 3

我遵循了@Keyur Potdar 给出的步骤,但我无法检索,例如,使用以下代码的第二页的文本。 它只给我第一页的文字:

import requests
from bs4 import BeautifulSoup

desc = {'productId': 'v920t140190',
'siteMapNodeId': 389,
'CurrentPage': 2,
'StarValueList':'',
'ReviewOrdering': 2,
}
r = requests.get('https://www.cdiscount.com/maison/achat-meuble-literie/dormipur-matelas-140x190-memoire-de-forme-16-c/f-11755-v920t140190.html#rating',params=desc)
soup = BeautifulSoup(r.text, 'html.parser')

tabinfos = []
for a in soup.find_all('p'):
    tabinfos.append(a)

for i in range(0,len(tabinfos)):
    print('Text :')
    print(tabinfos[i].text)

页面评论数据通过 ajax 请求填充。 您可以使用请求模拟相同的内容并获取数据。 您可以使用检查工具中的网络选项卡来找出正在发出的 ajax 请求。

你得到的数据是 html 本身,所以你不必做任何额外的工作。 您可以使用在循环中使用的相同脚本,但使用新的 ajax url。

import requests
from bs4 import BeautifulSoup
no_of_pages=5
all_comments=[]
for page in range(1,no_of_pages+1):
    desc = {'productId': 'v920t140190',
    'siteMapNodeId': 389,
    'CurrentPage': page,
    'StarValueList':'',
    'ReviewOrdering': 2,
    }
    r = requests.get('https://www.cdiscount.com/RWDPSCustomerReviews.mvc/UpdatePagination',params=desc)
    soup = BeautifulSoup(r.text, 'html.parser')
    all_comments.extend([p.text.strip() for p in soup.find_all('p')])
for comment in all_comments:
    print(comment)

输出:

ras bon produit bon rapport qualite prix  envoie rapide
Acheté pour lit de chambre d'amis. Excellent rapport qualité / prix. Perso, je le trouve un peu dur.
Très satisfaite du confort de ce matelas, j’en possède déjà un ce qui me pousse en commander un autre pour ma maman.
Article conforme à la description 
Couchage assez ferme / les tailles sont celles annoncées
Après 1 mois d'utilisation bon matelas s'adapte bien. Il est vrai qu'il est très dur au début. Depuis que je l'ai acheté je ne me leve plus la nuit pour aller au toilette je fait des nuit complete YOUPI, Je le recommande
Matelas agréable au coucher et toucher
Tout parfait comme descriptif
Je passe demain excellente nuits
très confortable après plusieurs mois d'utilisation, prend sa forme en deux jours
Matelas pour ma fille elle est très heureuse car elle dort bien.
Merci
très bon rapport qualité/prix. je recommande aux petits revenus!
Livre rapidement 
Le seul bémol l'odeur du plastique
Super. Très bon rapport qualité prix. A recommander.
Livré en mon absence, le jour convenu devant ma porte donc super à ce niveau . Odeur de neuf un peu désagréable mais pas non persistante, dans une pièce bien aérée elle s'en ira en moins de 2 jours. Un peur dur, neuf oblige, mais plutôt bien pour les dos fragiles.
Confortable, des soucis de dos et maintenant nous dormons parfaitement bien!
Je suis très satisfaite de mon achat c'est un très bon produit. Très bon rapport qualité prix. Je recommande
Livraison rapide et matelas très bien conditionné "sous vide". (matelat roulé, reprend vite sa forme).
Mon grand le trouve confortable, ferme mais juste ce qu'il faut.
Matelas très confort le seul problème que j' ai du mal avec c est si il as une odeur assez forte est ce que ça reste longtemps ou pas?sinon oui je le conseille
Juste un epaisseur de 2 cm qui est memoire forme sans compter la house qui est juste memoire de forme que d un des deux coter
Cela fait le deuxième que j'achète en deux mois dans le cadre de l'installation de mes enfants, ces matelas sont très bien, j'ai été très agréablement surpris. Ils ont aussi l'énorme avantage d'être avant leur ouverture très facilement transportables et rentrent parfaitement sur les sièges arrières d'une petite voiture.
Pour un matelas à mémoire de forme, je trouve qu’il est bien ferme mais me convient quand même. A une assez forte odeur au déballage mais qui part au bout d’une journée (laisser aérée). Rapport qualité/prix il est pas mal. A voir au fil du temps.
En pleine forme lors du réveil, et ce, pdt 2 semaines !
Je dors dessus depuis le mois de novembre et j'en suis très satisfaite il est confortable dur et moelleux en même temps ce qu'il faut pour le dos
dommage tres dure mais faut si habituer ,mais bonne qualité
Le matelas en lui même est bien. Le gros problème c'est l'odeur qu'il dégage . Je ne sais si cela provient du matelas ou de l'emballage mais c'est très désagréable. Malgré l'aération du matelas et de la chambre cela reste très prononcé.
le matelas et bien ferme, j'ai plus de mal au dos, je dort nickel dessus.
Conforme à ce que je m'attendais.Je recommande vivement.

另一种选择是使用selenium来模拟单击“下一步”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM