【发布时间】:2020-07-20 16:54:51
【问题描述】:
我正在尝试从this 网页中抓取数据,并且我能够成功地抓取我需要的数据。
问题是使用 requests 下载的页面只有 45 个产品详细信息,但实际上在该网页上它有 4000 多个产品,这是因为所有数据都无法直接获得,只有向下滚动到页面时才会显示。
我想抓取页面上所有可用的产品。
代码
import requests
from bs4 import BeautifulSoup
import json
import re
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}
base_url = "link that i provided"
r = requests.get(base_url,headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
scripts = soup.find_all('script')[11].text
script = scripts.split('=', 1)[1]
script = script.rstrip()
script = script[:-1]
data = json.loads(script)
skus = list(data['grid']['entities'].keys())
prodpage = []
for sku in skus:
prodpage.append('https://www.ajio.com{}'.format(data['grid']['entities'][sku]['url']))
print(len(prodpage))
【问题讨论】:
-
问题是一样的,但我不认为答案是根据操作给出的..我的数据隐藏在我转换为 json 的 javascript 中......我已经提取了数据..所以如果可能的话,我只希望所有数据都出现在我传递给
requests的 html 和 javascript 中,我可以处理它
标签: python json web-scraping beautifulsoup python-requests