Beautifulsoup:找不到标签

时间:2019-09-02 13:22:18

标签: python beautifulsoup

我是Python初学者,几周前我开始使用beautifulsoup。现在,我正在尝试构建一个简单的项目,以刮擦某些速卖通产品上发布的评论的国家/地区信息。当我检查网站上的HTML代码时,发现在beautifulsoup中应该寻找的是class =“ css_flag ...”(请参见所附图片https://i.stack.imgur.com/LgMae.png),但找不到。

我试图提取所有的'b'标签,但没有运气。我还在控制台上打印了整个汤,然后将其复制到wordfile中,并手动搜索了class =“ css_flag ...”,却一无所获。

这是我现在正在使用的代码

from urllib.request import urlopen
from bs4 import BeautifulSoup
import ssl
import re

ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input('Enter - ')
html = urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, "html.parser")


tags = soup('b')
for tag in tags:
    print(tag)

我希望代码返回所有包含“ css_flag”的字符串。在此,我将非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您将使用另一个URL进行访问。您需要提供一些查询数据,例如productId编号等,但是您可以获得您想要的。下面的代码/示例:

import bs4
import requests

request_url = 'https://feedback.aliexpress.com/display/productEvaluation.htm'

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'}

payload = {
'v': '2',
'productId': '33023202345',
'ownerMemberId': '232182005',
'companyId': '241422497',
'memberType': 'seller',
'startValidDate':'',
'i18n': 'true'}

res = requests.get(request_url, headers=headers, params=payload)
soup = bs4.BeautifulSoup(res.text)
tags = soup('b')
for tag in tags:
    print(tag)

输出:

<b class="r-graph-scroller" style="width:94.0%;"></b>
<b class="r-graph-scroller" style="width:5.0%;"></b>
<b class="r-graph-scroller" style="width:0.0%;"></b>
<b class="r-graph-scroller" style="width:1.0%;"></b>
<b class="r-graph-scroller" style="width:0.0%;"></b>
<b>4.9</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>
<b class="css_flag css_ru">RU</b>