Python 如何将数据输入网站文本框,然后将数据写入文本文件?

Python 如何将数据输入网站文本框,然后将数据写入文本文件?,python,web-scraping,request,ascii,urllib,Python,Web Scraping,Request,Ascii,Urllib,我正在编写一个程序,根据用户输入的单词打印出ASCII码。这个词被翻译成一个图像链接,在这一点上,我试图把这个链接发送到。这是行不通的。从这里开始,我尝试读取生成的ASCII艺术,然后将其放入文本文件中,然后打印出来。这也不行。我无法将链接发送到该网站,然后检索该数据。我将如何实现这一点 您发送的是一个正确的请求,但参数错误,该post请求会将您引导到另一个页面,而不是直接艺术。即使在你进入这个页面后,艺术仍然需要一段时间才能加载。该网站正在发送一个请求,以检查art是否准备就绪(可以在开发工具

我正在编写一个程序,根据用户输入的单词打印出ASCII码。这个词被翻译成一个图像链接,在这一点上,我试图把这个链接发送到。这是行不通的。从这里开始,我尝试读取生成的ASCII艺术,然后将其放入文本文件中,然后打印出来。这也不行。我无法将链接发送到该网站,然后检索该数据。我将如何实现这一点


您发送的是一个正确的请求,但参数错误,该post请求会将您引导到另一个页面,而不是直接艺术。即使在你进入这个页面后,艺术仍然需要一段时间才能加载。该网站正在发送一个请求,以检查art是否准备就绪(可以在开发工具中看到)。这个过程可以在python中轻松复制,因为发送的图像的名称存储在网站上。您需要beautifulsoup才能使其工作(
pip安装bs4

代码
导入请求、请求、时间
从bs4导入BeautifulSoup
ascii_生成器=”https://www.ascii-art-generator.org/"
图像链接https://i.guim.co.uk/img/media/2589fa711843a42405ae233b71f85ead362f6659/0_103_2160_1296/master/2160.jpg?width=300&quality=85&auto=format&fit=max&s=a52d11a9ace574f1927043f8f66a6032'
网站_数据={
“艺术类型”:“单声道”,
'用户文件':'(二进制)',
“userfile\u url”:图像链接,
“横幅文字”:“,
'outFormat_caca':'html',
“figlet_字体”:0,
“宽度”:300,
“横幅宽度”:100,
“用户屏幕宽度”:980,
}
r=requests.post(ascii\u生成器,数据=网站\u数据)
soup=BeautifulSoup(r.text'html.parser')
script=[script.text用于soup中的脚本。如果script.text中的'var url',则查找_all('script')][0]
name=re.search(r“name=(\w*)”,script.group(1)
now=int(time.time())
勾选https://www.ascii-art-generator.org/FW/result.php'
参数={
“名称”:名称,
“tscachebustamp”:现在
}
检查=“\uuuu等待\uuuuu 123”
while check=='\uuuuuu wait\uuuuuuu 123':
check=requests.get(check_url,params=params).text
时间。睡眠(3)
打印('已选中')
check\u soup=BeautifulSoup(检查'html.parser')
艺术链接https://www.ascii-art-generator.org“+check_soup.find('a',text='banner.txt')['href']
art=requests.get(art\u链接)
以open('art.txt','wb')作为代码:
代码编写(艺术内容)
打印('\n已保存!')

这几乎对我有效,但我收到了以下错误:回溯(最近一次调用上次):文件“artist.py”,第84行,在art\u link=''+check\u soup.find('a',text='banner.txt')['href']TypeError:'NoneType'对象不可订阅,我不确定原因。你能解释一下它为什么这样做吗?对不起,我不明白。谢谢如果只尝试一次,服务器可能已过载。你对剧本做了任何改动吗?如果没有,请尝试删除
,text='banner.txt'
我修改了脚本,并将其与原始脚本组合。我现在就去测试!可以在while循环后打印变量检查并将html发送到粘贴箱中吗?它对我有效,所以我不知道发生了什么,除非我看到失败的html。当它只是你的代码时,它就可以工作了——然而,有两个方面它失败了。当我将颜色从“mono”更改为“color”时,它失败了,所发生的是,对于不同的图像URL,它不起作用。这是pastebin:谢谢你的帮助,我真的很感激!
import urllib
import requests
from googlesearch import search
import os
import sys
import time

os.system(["clear", "cls"][os.name == "nt"])

image = input("What do you want me to draw?\n\x1b[5m-\x1b[25m ")

query = image + " images"

print("\n\x1b[5mDrawing...\x1b[25m ", end="")

for image_link in search(query, tld="co.in", num=10, stop=1, pause=2): 
    print(image_link)

ascii_generator = "https://www.ascii-art-generator.org/"

website_data = {"name" : image_link, 
"type" : "text",
"id" : "fileupfield-url",
"class" : "width-input ff-inputfield"}

r = requests.post(ascii_generator, data = website_data)

with open("art.txt", "wb") as code:
    code.write(r.content)