爬虫查看本地IP问题
比如我现在要爬取本地IP地址,爬取的网站为:https://apis.baidu.com/store/aladdin/land?cardType=ipSearch浏览器访问的结果如图:
http://ww1.sinaimg.cn/large/005KJzqrgy1gp0ngkwhy3j30u00ra778.jpg
直接使用requests方法不能获取到IP,所以使用浏览器自带的控制台进行XHR文件抓取,查看后发现有两个query文件
http://ww1.sinaimg.cn/large/005KJzqrgy1gp0nitqml8j317e0gmgo4.jpg
发现IP就是在里面
于是使用代码:
url = r'https://gwgp-kk6owjrbujz.i.bdcloudapi.com/aladdin/ip/query'
session = requests.Session()
header = {
'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36',
}
params = {
'Host': 'gwgp-kk6owjrbujz.i.bdcloudapi.com',
'Origin': 'https://www.baidu.com',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'cross-site',
}
res = session.get(url=url, headers=header)
print(res.status_code)
print(res.content)
但返回的结果为:
400
b'{"code":"InvalidTimestamp","message":"Parameter \'timestamp\' is invalid."}'
继续打开文件,发现里面有个timestamp请求头,不知道如何组成。
http://ww1.sinaimg.cn/large/005KJzqrgy1gp0nmovh81j314a09egnd.jpg
请问这个IP要如何抓取? 建议换网站,比如IP138之类的,度娘自己就是一个最大的爬虫站,你爬他可能比较难 换个专门查本机的网站吧,百度这个只是友情提示你的IP:
import requests
import re
def main():
url = 'https://www.get-myip.com/'
headers = {'user-agent': 'firefox'}
r = requests.get(url, headers=headers)
result = re.findall(r'Address is : (.*?)</h1', r.text)
print(result)
if __name__ == '__main__':
main()
页:
[1]