Javascript 使用Json和BS4在HTML中删除脚本标记

Javascript 使用Json和BS4在HTML中删除脚本标记,javascript,python,json,web-scraping,beautifulsoup,Javascript,Python,Json,Web Scraping,Beautifulsoup,代码错误,重新启动项目wwww您不能使用BeautifulSoup解析Javascript数据,但可以使用re模块(数据是您的HTML代码): 印刷品: https://secure.ewaypayments.com/sharedpage/sharedpayment?AccessCode=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== 使用bs4.7.1的另一

代码错误,重新启动项目wwww

您不能使用BeautifulSoup解析Javascript数据,但可以使用
re
模块(
数据
是您的HTML代码):

印刷品:

https://secure.ewaypayments.com/sharedpage/sharedpayment?AccessCode=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==

使用bs4.7.1的另一种方法:包含和拆分

from bs4 import BeautifulSoup as bs
 #html would be response text  e.g. r = requests.get(url): soup = bs(r.content, 'lxml')

html = '''

<div class="Actions">
                <input class="action" type="submit" id="submit-button" value="Place Order" title="Place Order" onclick="return showModal()" disabled="disabled" />
              <input type="hidden" id="EWAY_TransactionID" name="EWAY_TransactionID" value="" />
              <script src="https://secure.ewaypayments.com/scripts/eCrypt.js"> </script>
              <script type="text/javascript">
                var eWAYConfig = {
                  sharedPaymentUrl: "https://secure.ewaypayments.com/sharedpage/sharedpayment?AccessCode=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="
                };
                function showModal()
                {
                  // verify captcha

                  // show modal
                  return eCrypt.showModalPayment(eWAYConfig, resultCallback);
                }
                function resultCallback(result, transactionID, errors) {
                  if (result == "Complete") {
                    document.getElementById("EWAY_TransactionID").value = transactionID;
                    document.getElementById("Form_PaymentForm").submit();
                    //Please wait until we process your order, James at 9/10/2017
                    document.getElementById("overlay").style.display = "block";
                  }
                  else if (errors != "")
                  {
                    alert("There was a problem completing the payment: " + errors);
                  }
                }
              </script>

'''
soup = bs(html, 'lxml') 
target = 'sharedPaymentUrl: '
script = soup.select_one('.Actions script:contains("' + target + '")')
if script is None:
    url = 'N/A'
else:
    url = script.text.split(target)[1].split('\n')[0]
print(url)
从bs4导入美化组作为bs
#html将是响应文本,例如r=requests.get(url):soup=bs(r.content,'lxml')
html=“”
变量配置={
sharedPaymentUrl:“https://secure.ewaypayments.com/sharedpage/sharedpayment?AccessCode=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="
};
函数showmodel()
{
//验证验证码
//显示模态
返回eCrypt.showModalPayment(wayconfig,resultCallback);
}
函数resultCallback(结果、事务ID、错误){
如果(结果=“完成”){
document.getElementById(“Way_TransactionID”).value=TransactionID;
document.getElementById(“Form_PaymentForm”).submit();
//请等待我们处理您的订单,James,2017年9月10日
document.getElementById(“覆盖”).style.display=“块”;
}
else if(错误!=“”)
{
警报(“完成付款时出现问题:+错误”);
}
}
'''
soup=bs(html,“lxml”)
目标='sharedPaymentUrl:'
脚本=汤。选择一个('.Actions脚本:包含(“+target+”))
如果脚本为“无”:
url=‘不适用’
其他:
url=script.text.split(目标)[1]。split('\n')[0]
打印(url)

也许你的意思不是
。查找所有(“脚本”)[1]
?请准确解释您在该脚本标记中的目的是什么您需要将一些数据发布到站点(例如,使用
requests.post()
)。只需获取页面
https://www.supplystore.com.au/shop/checkout/submit.aspx
不包含您的数据。
from bs4 import BeautifulSoup as bs
 #html would be response text  e.g. r = requests.get(url): soup = bs(r.content, 'lxml')

html = '''

<div class="Actions">
                <input class="action" type="submit" id="submit-button" value="Place Order" title="Place Order" onclick="return showModal()" disabled="disabled" />
              <input type="hidden" id="EWAY_TransactionID" name="EWAY_TransactionID" value="" />
              <script src="https://secure.ewaypayments.com/scripts/eCrypt.js"> </script>
              <script type="text/javascript">
                var eWAYConfig = {
                  sharedPaymentUrl: "https://secure.ewaypayments.com/sharedpage/sharedpayment?AccessCode=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="
                };
                function showModal()
                {
                  // verify captcha

                  // show modal
                  return eCrypt.showModalPayment(eWAYConfig, resultCallback);
                }
                function resultCallback(result, transactionID, errors) {
                  if (result == "Complete") {
                    document.getElementById("EWAY_TransactionID").value = transactionID;
                    document.getElementById("Form_PaymentForm").submit();
                    //Please wait until we process your order, James at 9/10/2017
                    document.getElementById("overlay").style.display = "block";
                  }
                  else if (errors != "")
                  {
                    alert("There was a problem completing the payment: " + errors);
                  }
                }
              </script>

'''
soup = bs(html, 'lxml') 
target = 'sharedPaymentUrl: '
script = soup.select_one('.Actions script:contains("' + target + '")')
if script is None:
    url = 'N/A'
else:
    url = script.text.split(target)[1].split('\n')[0]
print(url)