Установить макет местоположение в заголовке запроса - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь удалить страницы 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"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...