如何获得使用Python发送表单后生成的输出?



这是我想要的网站:https://tweeterid.com/

这是我目前以函数

的形式所做的
from bs4 import BeautifulSoup as bs
from selenium import webdriver
def getTwitterID(name):
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('start-maximized')
options.add_argument('enable-automation')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-browser-side-navigation')
options.add_argument("--remote-debugging-port=9222")
# options.add_argument("--headless")
options.add_argument('--disable-gpu')
options.add_argument("--log-level=3")
driver = webdriver.Chrome('chromedriver', options=options)
driver.maximize_window()
driver.get("https://tweeterid.com/")
driver.refresh()
driver.find_element("id","twitter").send_keys(name)
driver.find_element("id","twitterButton").click()
WebDriverWait(driver, 10)
html = driver.page_source
soup = bs(html)
id = soup.select_one('div[class*="output"]')
return id.text

名称参数包含处理名称的Twitter。我想要的是显示在右侧较大框上的输出结果,但是,当我运行代码时……我得到的只是"在上面的左边输入一个Twitter ID或@handle,它将被转换为"当您没有发送表单时,这是默认文本。

我该如何解决这个问题?

要获取id,只需编写一个简单的请求即可。在其主体中传递用户名

import requests

def get_converted_tweeter_id(handle):
url = "https://tweeterid.com/ajax.php"
payload = f"input={handle}"
headers = {
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.text
print('@elonmusk->', get_converted_tweeter_id('@elonmusk'))
print('elonmusk->', get_converted_tweeter_id('elonmusk'))
print('eminem->', get_converted_tweeter_id('eminem'))

输出:

@elonmusk-> 44196397
elonmusk-> 44196397
eminem-> 22940219

根据您采取的方法,

使用下面的xpath获取文本内容-

//div[@id='outputSection']/div[@id='output']

相关内容

  • 没有找到相关文章

最新更新