python - 如何实现这个python post并获取?
问题描述
我已经尝试了几个小时使用requests
and urllib
。我很迷茫,也被谷歌误解了。一些技巧,甚至任何东西都会很有用。谢谢你。
目标:发布国家代码和电话号码,然后获取移动运营商等问题:不打印任何内容。变量“名称”打印出无。
def do_ccc(self): #Part of bigger class
"""Phone Number Scan"""
#prefix=input("Phone Number Prefix:")
#number=input("Phone Number: ")
url=("https://freecarrierlookup.com/index.php")
from bs4 import BeautifulSoup
import urllib
data = {'cc' : "COUNTRY CODE",
'phonenum' : "PHONE NUMBER"}#.encode('ascii')
data=json.dump(data,sys.stdout)
page=urllib.request.urlopen(url, data)
soup=BeautifulSoup(page, 'html.parser')
name=soup.find('div', attrs={'class': 'col-sm-6 col-md-8'})
#^^^# Test(should print phone number)
print(name)
解决方案
正如 Zags 指出的那样,使用网站并违反其服务条款并不是一个好主意,尤其是当该网站提供廉价的API时。
但回答你原来的问题:
- 您正在使用
json.loads
而不是json.load
导致一个空的空data
对象。 - 如果您查看该页面,您将看到 POST 请求的 URL 不同,
getcarrier.php
而不是index.php
. - 您还需要将您的
str
from转换json.dumps
为bytes
,即使那样网站也会拒绝您的呼叫,因为隐藏的令牌会添加到网站提交的每个请求中以防止自动抓取。
推荐阅读
- selenium - selenide.open 尝试抛出 NoSuchMethodError
- json - 尝试解码 json 时出错:simplejson.errors.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)
- apache-kafka - 有没有办法为每个 kafka 主题获取所有制作人的 ip?
- python - 如何添加网格图作为一个图表的背景?
- django - 如何在 django 和 djangorestframework 中对创建 API 进行自定义验证?
- ios - 在 xcode 12 中创建通用框架时出现 Lipo 错误
- azure-devops - Sprint 177(2020 年 10 月 21 日)发布日期?
- scala - 迭代地图以创建另一个地图
- inno-setup - 在多个 Inno Setup 脚本常量出现中重用相同(随机)值
- kubernetes - 使用 Shell 脚本在 ConfigMap 中创建 Secret