Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 漂亮的汤不挑你某些标签_Python_Python 3.x_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 漂亮的汤不挑你某些标签

Python 漂亮的汤不挑你某些标签,python,python-3.x,web-scraping,beautifulsoup,Python,Python 3.x,Web Scraping,Beautifulsoup,好的,我已经读了很多关于如何使用靓汤的答案。但我还是不走运,在这里我需要做的是我的工作 soup = BeautifulSoup(open("/home/brendan/PycharmProjects/untitled2/newDeficency.html"),"html5lib") for element in soup.find_all('input'): print(element['name'], element['value']) 因为这是一个更大的程序的一部分,所以我现在

好的,我已经读了很多关于如何使用靓汤的答案。但我还是不走运,在这里我需要做的是我的工作

soup = BeautifulSoup(open("/home/brendan/PycharmProjects/untitled2/newDeficency.html"),"html5lib")

for element in soup.find_all('input'):
    print(element['name'], element['value'])
因为这是一个更大的程序的一部分,所以我现在只是缓存了一个我想抓取的页面类型的副本,现在它只返回文档中的所有超链接

for element in soup.find_all('a'):
    print(element['href'])
我不确定这为什么不能正常工作,因为我也尝试过使用

'li' , 'select' 'option' and 'form' 
没有成功,尽管他们显然是在源头这里是一个错误


非常感谢,因为我已经花了几个小时来处理这6行代码,我完全不知所措了

这可能是您需要的

HTML = '''\
<html>
<body>
<form>
    <input type='text' name='name' value='jones'></input>
    <input type='text' name='rank' value='private'></input>
    <input type='text' name='serial_number' value='B18567'></input>
</form>
</body>
</html>'''

from bs4 import BeautifulSoup

soup = BeautifulSoup(HTML, 'lxml')
for element in soup.find_all('input'):
    print (element.attrs['name'], element.attrs['value'], element.attrs['type']) 
编辑:当您在浏览器中打开已下载的文件时,应该会在浏览器窗口中看到类似的内容


现在,在Windows Ctrl-A、Ctrl-C中,将剪贴板内容放入一个名为
temp.htm

的文件中,我试图跟踪到“源页面”的链接,结果是:{“错误”:{“错误”:[{“域”:“全局”,“原因”:“锁定域未请求”,“消息”:“锁定域已过期”}、“代码”:401,“消息”:“锁定域已过期”},你只想获取页面所有
input
元素的'name'和'value'属性?很抱歉,我更新了源链接,第一次没有使用公共链接,但是耶,我只是想获取'input'的名称和值。问题是有些没有'name',有些没有'href'。你到底想刮什么?好吧,可能是这样,但正如Bill Bell所展示的[inputs=soup.find_all('input');len(inputs)]仍然应该返回一个非零的数字。。我正试图从一个定制的phpmyadin面板中获取一些东西,谢谢,虽然这可以工作,但它似乎无法处理我需要的源文件。find_all函数没有返回任何东西,我想这是因为代码已经被折磨得足够厉害了,它不再有任何
输入
元素。这是一个显示
input
元素的页面,但如果您听我说的话,它没有任何元素。你还可以访问原始页面吗?我确实了解你,是的,这是意大利面的定义,但这是它直接来自服务器的方式,它在登录后,这就是为什么我发布了源代码,源代码确实有{}但是我注意到没有{}但是我从文档中得到的印象是html5lib会处理这个问题?是的。:)那就是帮助你。获取HTML的一种简单方法是将下载的内容加载到浏览器中,然后将浏览器窗口中的内容复制粘贴到文本文件中(我称之为temp.htm),然后运行如下操作<代码>汤=BeautifulSoup(打开('temp.htm').read(),'lxml');输入=汤。查找所有(“输入”);len(输入)我的结果是37。真的吗?也许是因为我的安排?因为我仍然得到0作为结果,我得到1作为“表”的结果,尽管至少有3或4个。。。我将beutifulsoup4与python 3.4.3一起使用
name jones text
rank private text
serial_number B18567 text