Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将抓取脚本转换为web服务?_Python_Selenium_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 如何将抓取脚本转换为web服务?

Python 如何将抓取脚本转换为web服务?,python,selenium,web-scraping,beautifulsoup,Python,Selenium,Web Scraping,Beautifulsoup,我想构建一个接受字符串并返回html代码的api 这是我想要的作为web服务的剪贴代码 代码 有谁能告诉我将代码包装为api/web服务的最佳解决方案吗?通常没有最佳解决方案,因为解决方案必须适合问题和可用资源 现在你好像在试图包装别人的网站。如果这是你真正想要解决的问题,并且你想给予信任,你应该把人们转发到他们的网站上。让您的站点返回一个302重定向,其URL位于标题中的位置字段中 如果您试图从这个硬编码的示例检查中获得响应,并使结果可用,我建议您将其放在nginx后面的静态文件中 如果您试图

我想构建一个接受字符串并返回html代码的api

这是我想要的作为web服务的剪贴代码

代码


有谁能告诉我将代码包装为api/web服务的最佳解决方案吗?

通常没有最佳解决方案,因为解决方案必须适合问题和可用资源

现在你好像在试图包装别人的网站。如果这是你真正想要解决的问题,并且你想给予信任,你应该把人们转发到他们的网站上。让您的站点返回一个
302重定向
,其URL位于标题中的
位置
字段中

如果您试图从这个硬编码的示例检查中获得响应,并使结果可用,我建议您将其放在
nginx
后面的静态文件中

如果您试图使用他们的后端将您的行程转换为您可以返回的响应,那么您可以使用他们的后端API来实现这一点。阅读文档,使用
requests
库点击所需的API端点,然后返回JSON结果,并根据需要格式化它

如果你试图通过让自己成为中间人来复制他们的网站,那可能是非法的,你应该重新考虑你在做什么


出于托管目的,您需要计算API被攻击的频率。你可以很容易地从Heroku或类似的网站开始,如果需要的话,可以扩展。您可能希望WebObj或Flask或类似的东西位于您打算托管此应用程序的网站上。您可以使用它们将我认为是一个简单的请求处理为您希望使用其API的字符串

我是PNR Converter的所有者,因此我可以对您试图从我们的网站中获取内容的行为提供一些帮助。不幸的是,不建议从PNR转换器刮取。我们正在开发一个API,它看起来会满足您的需要,并且应该在不久的将来准备好。如果您通过网站联系我们,如果您希望合法使用PNR转换器,我们将很高兴与您合作。PNR转换器每年至少更新一次,因此我们定期更改所有代码。我们还监控所有对我们网站的请求,我们将阻止任何被视为不当使用的请求。我们的过滤器已检测到您的IP地址(以250.144结尾)可能被误用

正如我所说,如果您希望与我们在PNR转换器的合法工作,而不是刮我们的内容,那么我们将很高兴这样做!请继续检查有关我们API的信息


我们将在本周末发布一个后端升级,它将有一个不同的HTML结构和动态命名的元素,这将给web scraper带来严重的问题

可能使用他们的API来获取JSON响应,而不是试图从他们的网页中筛选出JSON响应。那么你就不必托管你自己的服务了。@pcurry我怎样才能使用他们的API来进行抓取呢。你能指导我吗,我以前没写过API代码?我没看过。。。但是在谷歌搜索了pnrconverter.com的api之后,我怎么才能开始呢?因为我不知道怎么开始,我没有做刮削。
from selenium import webdriver
import bs4
import requests
import time

url = "https://www.pnrconverter.com/"
browser = webdriver.Firefox()
browser.get(url)
string = "3 PS 232 M 03FEB 7 JFKKBP HK2 1230A 420P 03FEB E 
PS/JPIX8U"
button = 
browser.find_element_by_xpath("//textarea[@class='dataInputChild']")
button.send_keys(string) #accept string
button.submit()
time.sleep(5)
soup = bs4.BeautifulSoup(browser.page_source,'html.parser')
html = soup.find('div',class_="main-content") #returns html
print(html)