Mikil 发表于 2021-3-29 12:19:36

爬虫查看本地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要如何抓取?

笨鸟学飞 发表于 2021-3-29 14:26:57

建议换网站,比如IP138之类的,度娘自己就是一个最大的爬虫站,你爬他可能比较难

suchocolate 发表于 2021-3-29 18:53:52

换个专门查本机的网站吧,百度这个只是友情提示你的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]
查看完整版本: 爬虫查看本地IP问题