Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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:从很长的div类输出中选择一个特定的部分_Python_Beautifulsoup - Fatal编程技术网

python:从很长的div类输出中选择一个特定的部分

python:从很长的div类输出中选择一个特定的部分,python,beautifulsoup,Python,Beautifulsoup,我从一个网站拉信息和输出是非常长的。如何选择我感兴趣的关键部分并将其分配给新对象 这是我用来获取信息的部分代码- soup = bs(response.text,"html.parser") cartl = soup.find("div",{"class":"product-view"}) cart_link = cartl.find_all("form") 这是我的长输出(我缩短了它,例如,它拉出来的全文大约是100行)—— 这是一个新的错误,我知道我错在哪里了- Traceback (mo

我从一个网站拉信息和输出是非常长的。如何选择我感兴趣的关键部分并将其分配给新对象

这是我用来获取信息的部分代码-

soup = bs(response.text,"html.parser")
cartl = soup.find("div",{"class":"product-view"})
cart_link = cartl.find_all("form")
这是我的长输出(我缩短了它,例如,它拉出来的全文大约是100行)——

这是一个新的错误,我知道我错在哪里了-

Traceback (most recent call last):
  File "test.py", line 16, in <module>
    soup = BeautifulSoup(html, 'html.parser')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/bs4/__init__.py", line 191, in __init__
    markup = markup.read()
TypeError: 'NoneType' object is not callable
回溯(最近一次呼叫最后一次):
文件“test.py”,第16行,在
soup=BeautifulSoup(html,'html.parser')
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/bs4/_init__.py”,第191行,在_init中__
markup=markup.read()
TypeError:“非类型”对象不可调用

您可以使用BeautifulSoup
find
方法获取对
标记的引用(如果页面上有多个表单,可以选择过滤特定的
id
)。然后,将表单对象视为字典,以提取
action
属性

代码
from bs4 import BeautifulSoup
import requests

session = requests.session()
endpoint = "https://randomsite.com/"
response = session.get(endpoint)

soup0 = BeautifulSoup(response.text,"html.parser")

div = soup0.find("div",{"class":"product-view"})
html = div.find("form")

soup = BeautifulSoup(html, 'html.parser')
form = soup.find('form', { 'id': 'product_addtocart_form' })
action = form['action']
print(action)
Traceback (most recent call last):
  File "test.py", line 16, in <module>
    soup = BeautifulSoup(html, 'html.parser')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/bs4/__init__.py", line 191, in __init__
    markup = markup.read()
TypeError: 'NoneType' object is not callable
from bs4 import BeautifulSoup

html = '''
<form action="https://www.randomsite.com/checkout/cart/add/uenc/aHR0cHM6Ly93d3cudGhlZ29vZHdpbGxvdXQuY29tL25pa2UtYWlyLWpvcmRhbi0xMy1yZXRyby1iZy1oaXN0b3J5LW9mLWZsaWdodC13aGl0ZS1tZXRhbGljLXNpbHZlci11bml2ZXJzaXR5LXJlZC00MTQ1NzQtMTAzP19fX1NJRD1V/product/92797/form_key/NBlK6IE3LYdwf0Vh/" id="product_addtocart_form" method="post">
<input name="form_key" type="hidden" value="NBlK6IE3LYdwf0Vh"/>
<div class="no-display">
<input name="product" type="hidden" value="92797"/>
<input id="related-products-field" name="related_product" type="hidden" value=""/>
</div>
'''

soup = BeautifulSoup(html, 'html.parser')
form = soup.find('form', { 'id': 'product_addtocart_form' })
action = form['action']
print action
https://www.randomsite.com/checkout/cart/add/uenc/aHR0cHM6Ly93d3cudGhlZ29vZHdpbGxvdXQuY29tL25pa2UtYWlyLWpvcmRhbi0xMy1yZXRyby1iZy1oaXN0b3J5LW9mLWZsaWdodC13aGl0ZS1tZXRhbGljLXNpbHZlci11bml2ZXJzaXR5LXJlZC00MTQ1NzQtMTAzP19fX1NJRD1V/product/92797/form_key/NBlK6IE3LYdwf0Vh/