一个网站能知道一个请求是通过“requests”python库发出的吗?

2024-09-30 01:33:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在想CVS商店的坐标。当我键入一个网址,应该去新泽西州的位置,它总是重定向到费城的中心我。我试着删除我的cookies,以为这会有所不同,但没有。你知道吗

以下是脚本:

import requests 
from bs4 import BeautifulSoup 
import json 
import csv 
from requests.exceptions import InvalidURL, MissingSchema 
import re

urlx = "http://www.cvs.com/store-locator/cvs-pharmacy-address/557+South+Atlantic+Avenue-Aberdeen-NJ-07747/storeid=2511" 
rx = requests.get(urlx) 
soupx = BeautifulSoup(rx.content)
lat = soupx.find(attrs={'id':'toLatitude'})['value'] 
long = soupx.find(attrs={'id':'toLongitude'})['value'] 
print lat, long

存在未使用的库,因为这本质上是一个较大脚本的片段,但是这是脚本中无法正常运行的部分。这个请求。获取(urlx)函数似乎并没有从新泽西州阿伯丁的url中提取,而是从费城的某个站点中提取,有什么想法为什么会发生这种情况?你知道吗


Tags: fromimport脚本idvaluefindrxrequests
1条回答
网友
1楼 · 发布于 2024-09-30 01:33:09

当您第一次进入链接时,它会将您最喜爱的商店设置为您附近的商店。并且所有后续请求都将转到实际的有问题的存储,因为favorite_storecookie已经保存。您可以通过向请求中添加cookie来模拟这一点。这还不够,因为它们似乎阻止了“异常”user-agent值,因此需要设置一个适当的user-agent。你知道吗

编辑:在一些测试之后,仅仅设置cookies={'favorite_store':'store'}似乎无法正常工作,因此我将发送第一个请求,然后从中获取cookies,因为它应该设置favorite_store。我已经更新了下面的代码。你知道吗

您应该可以这样设置favorite_storeuser-agent

import requests 
from bs4 import BeautifulSoup 
from requests.exceptions import InvalidURL, MissingSchema 
import re

urlx = "http://www.cvs.com/store-locator/cvs-pharmacy-address/557+South+Atlantic+Avenue-Aberdeen-NJ-07747/storeid=2511"
cookies = requests.get(urlx).cookies
rx = requests.get(urlx, cookies=cookies, headers={'user-agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})

soupx = BeautifulSoup(rx.content)
lat = soupx.find(attrs={'id':'toLatitude'})['value'] 
long = soupx.find(attrs={'id':'toLongitude'})['value'] 
street_address = ", ".join([soupx.find(attrs={'itemprop':'streetAddress'}).text,soupx.find(attrs={'itemprop':'addressLocality'}).text, soupx.find(attrs={'itemprop':'addressRegion'}).text ])
print lat, long, street_address

相关问题 更多 >

    热门问题