python - 从表格中提取 <b> 文本

标签 python web-scraping

您好,我用于提取亚马逊上一本书的畅销书排名的 python 代码是:

from lxml import html
import requests
from time import sleep

def parse(url):
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'}
page = requests.get(url,headers=headers)
for i in range(20):
    sleep(3)
    try:
        doc = html.fromstring(page.content)
        XPATH_BSR = '//li[@id="SalesRank"]//text()'

以这本书为例:https://www.amazon.com/dp/0965437221

我只想要畅销书编号 590345,但我的输出却一团糟:

谢谢。

{'BSR': '亚马逊畅销书排名:\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '图书中的#590,345(查看图书中的前 100 名)\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '\n' '.zg_hrsr { 边距:0;填充:0;列表样式类型:无; }\n' '.zg_hrsr_item { 边距:0 0 0 10px; }\n' '.zg_hrsr_rank { 显示:内联 block ;宽度:80px;文本对齐:' '正确的; }\n' '\n' '\n' '\n' '\n' '#4774\n' ' in\xa0Books > 健康、健身和节食 > 心理健康 > ' '幸福\n' '\n' '\n' '#55298\n' ' in\xa0Books > 自助',

最佳答案

因为我不知道您使用的是哪个库或其他任何东西。我将为您提供这个使用 requests-html 库的解决方案。

from requests_html import HTMLSession
session = HTMLSession()
page = session.get('https://www.amazon.com/dp/0965437221')
rank = page.html.find("#SalesRank").text.split('#')[1].split()[0]
print(rank)

另一种方式,假设上面的输出是字符串将直接提取排名,如下所示:

rank = your_output.split('#')[1].split()[0]
print(rank)

关于python - 从表格中提取 <b> 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53254481/

相关文章:

python - pandas 否定运算符的替代方案

python - 我们可以在 scrapy shell 之外运行 scrapy 代码吗?

python - 使我的 pypi 脚本可执行,而无需每次都指定脚本的路径

python - 我无法使用 re.split 来处理数字,但将它们保留在字符串中并放在一起,

python:带有 BeautifulSoup 的 Google 搜索抓取工具

python - Scrapy并发策略

java - 如何查找网页的所有元素(仅加载 25 个而不是全部)

javascript - Python - 如何抓取多个动态更新的表单/网页?

python - 'numpy.float6 4' object has no attribute ' 情节'

python - 在 antlr4 python3 目标中将 java 转换为 python