Я пытаюсь удалить страницы Walmart для проекта. Я могу успешно получить большой набор данных JSON, который представлен на их веб-странице. Тем не менее, я заметил, что это место по умолчанию в Калифорнии, хотя я на Среднем Западе. Как я могу создать макет местоположения в моем коде? Я прочитал об агенте пользователя, но похоже, что он «притворяется» браузером chrome. Я заметил, что когда я реализовал заголовок chrome, Walmart не считал меня роботом и дал результат, основанный на моем физическом местонахождении. Это отличный первый шаг, но я бы хотел изменить его, чтобы он отличался либо с помощью Широты и Долготы, либо с помощью какого-либо другого метода.
Я посмотрел поля заголовка HTTP и не уверен, что вижу способ установить это. Я также могу смотреть на это неправильно, так как я новичок в соскобе.
main.py
import json
import requests
from bs4 import BeautifulSoup
def parseWalmartProductPage(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36',
}
r = requests.get(url, headers=headers)
# parse the html
soup = BeautifulSoup(r.content, 'html.parser')
# parse the script tag used to lazy load the page
scriptJSON = soup.find('script', attrs = {'id':'item'})
# remove the script tags
for script in soup(["script"]):
script.extract()
# get text from the script tag and return it as JSON
jsonText = scriptJSON.get_text()
return json.loads(jsonText)
print(parseWalmartProductPage("https://www.walmart.com/ip/Great-Value-Whole-Milk-1-Gallon-128-Fl-Oz/10450114"))