Python 如何仅从html中获取产品id?

Python 如何仅从html中获取产品id?,python,html,web-scraping,Python,Html,Web Scraping,我得到的一切,但只是产品id或“钻石数据id”的网站HTML代码 我正在尝试将所有产品ID提取到csv文件中,这样我就可以刮取所有有效的产品页面,而不是浏览所有900万个有错误/404页面的页面 from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys import csv import time import nltk import s

我得到的一切,但只是产品id或“钻石数据id”的网站HTML代码

我正在尝试将所有产品ID提取到csv文件中,这样我就可以刮取所有有效的产品页面,而不是浏览所有900万个有错误/404页面的页面

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import csv
import time
import nltk
import string
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
import re

url = 'https://www.bluenile.com/diamond-search?track=NavDiaSea'
driver = webdriver.Chrome()
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")

driver.close()

您是对的,您从“”下载的html不包含任何产品ID

当查看页面在加载时所做的请求时(使用Firefox的Firebug插件之类的工具),您将看到该站点正在后台执行一些加载产品数据的请求

这些请求从URL下载JSON格式的产品数据,如

只需在浏览器中尝试上面的URL,它也可能提供您想要获取的大多数(如果不是所有)其他产品数据

然后尝试调整参数,特别是“startIndex”、“shape”,以及排序参数,因为它们似乎不接受startIndex>1000

例如:

。。。等等


通过测试参数的各种组合,您将能够下载大部分(如果不是全部的话)产品信息,包括产品ID

太好了,非常感谢!接下来的问题是,我可以请求300条数据记录,但我们如何继续获得唯一的产品ID?从同一个URL,或者如何迭代500个请求以获得多达140K+的产品ID?提前谢谢你…调整了我的答案。您必须修改此URL中的参数才能获得比初始结果更多的结果。太棒了。非常感谢你!