标签: beautifulsoup

帮助使用BeautifulSoup从表格单元格获取图像src

所以我有一个html页面,它有一个表单,表格里面有一排产品.

我现在已经到了循环表行的地步,在每个循环中我抓住所有表格单元格.

for tr in t.findAll('tr'):
    td = tr.findAll('td')
Run Code Online (Sandbox Code Playgroud)

现在我想从第一个td抓取图像src url.

Html看起来像:

<tr>
  <td ...>
    <a href ... >
       <img ... src="asdf/asdf.jpg" .. >
    </a>
  </td>

  ...
</tr>
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?我一直在考虑正则表达式.

我试过了:

td[0].a.image.src 但这没有用,因为它没有说'src'属性.

python beautifulsoup

1
推荐指数
1
解决办法
2400
查看次数

提取HTML页面中的所有<script>标记并附加到文档的底部

有人可以告诉我如何提取和删除<script>HTML文档中的所有标记,并将它们添加到文档的末尾,就在之前</body></html>?我想尽量避免使用lxml.

谢谢.

python beautifulsoup

1
推荐指数
1
解决办法
3415
查看次数

安装BeautifulSoup

我在我的ubuntu 10.04上运行python 3.1.2

我需要安装哪个版本的BeautifulSoup以及如何安装?

我已经下载了3.2版并运行sudo python3 setup.py install 但不起作用

日Thnx

编辑:我得到的错误是:

>>> import BeautifulSoup
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "BeautifulSoup.py", line 448
    raise AttributeError, "'%s' object has no attribute '%s'" % (self.__class__.__name__, attr)
                        ^
SyntaxError: invalid syntax
>>> 
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup

1
推荐指数
1
解决办法
2万
查看次数

'str'对象不可调用

不太明白为什么我收到此跟踪错误:

Traceback (most recent call last):
  File "S:/Personal Folders/Andy/Python Projects/Salesforce BZ API/Automated Reports.py", line 15, in <module>
    parse = br.soup("find('div')")
  File "build\bdist.win32\egg\spynner\browser.py", line 409, in _get_soup
    return self._html_parser(self.html)
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

from __future__ import division
#from __future__ import unicode_literals
from __future__ import print_function
import spynner
from BeautifulSoup import BeautifulSoup

#Loading up Salesforce

br = spynner.Browser()
#br.debug_level = spynner.DEBUG
br.create_webview()
br.show()
br.set_html_parser("BeautifulSoup")
br.load("https://login.salesforce.com/")
parse = br.soup("find('div')")
print(parse)
br.browse()
br.close()
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup spynner

1
推荐指数
1
解决办法
1343
查看次数

使用BeautifulSoup读取<script>的内容

我一直试图阅读以下网站的来源:

import urllib2
from BeautifulSoup import BeautifulSoup

url     = 'http://www.myurl.com/'
headers = {'User-Agent' : 'Mozilla/5.0'}
request = urllib2.Request(url,None,headers)
soup    = BeautifulSoup(urllib2.urlopen(request).read())
Run Code Online (Sandbox Code Playgroud)

我进一步缩小范围scriptResults = soup('script',{'type' : 'text/javascript'}).其内容的样本如下:

scriptResults = [<script type="text/javascript"> ... </script>,
                 ...,
                 <script type="text/javascript">
                     //comment 1
                     $(function () {
                     //comment 2
                     var True = true, False = false;
                         func.start({
                             token1 : "...",
                             token2 : [...],
                             ...
                             tokenN : ["value1","value2",...,"valueK"],
                             ...
                         })
                     })
                 </script>,
                 ...
                 ]
Run Code Online (Sandbox Code Playgroud)

现在我有兴趣提取值tokenN.我知道它在整个文档中是独一无二的,并且存在于我正在尝试阅读的所有网页中.此外,结果的数量scriptResults可能会有所不同,令牌的数量也会有所不同,因此我无法使用位置索引来访问它.另外,我意识到它BeautifulSoup是一个HTML解析器,并不解析JS.我如何使用正则表达式提取此信息?

如果没有一种简单的方法可以获得所有这些,以下可能是妥协.大多数的的 …

python regex beautifulsoup

1
推荐指数
1
解决办法
1万
查看次数

如何在beautifulsoup中获取属性为中文时的标签

我不熟悉beautifulsoup的编码.

当我处理某些页面时,某些属性是中文,我想使用这个中文属性来提取标签.

例如,如下所示的html:

<P class=img_s>
<A href="/pic/93/b67793.jpg" target="_blank" title="????">
<IMG src="/pic/93/s67793.jpg">
</A>
</P>
Run Code Online (Sandbox Code Playgroud)

我想提取'/pic/93/b67793.jpg'所以我做的是:

img_urls = form_soup.findAll('a',title='????')
Run Code Online (Sandbox Code Playgroud)

遇到:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb2 in position 0: ordinalnot in range(128)
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我做了两个方法,都失败了:一种方法是:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
Run Code Online (Sandbox Code Playgroud)

另一种方式是:

response = unicode(response, 'gb2312','ignore').encode('utf-8','ignore') 
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup

1
推荐指数
1
解决办法
521
查看次数

无法使用requests.get(url)运行BeautifulSoup

start_url=requests.get('http://www.delicious.com/golisoda')
soup=BeautifulSoup(start_url)
Run Code Online (Sandbox Code Playgroud)

此代码显示以下错误:

Traceback (most recent call last):
  File "test2_requests.py", line 10, in <module>
    soup=BeautifulSoup(start_url)
  File "/usr/local/lib/python2.7/dist-packages/bs4/__init__.py", line 169, in __init__
    self.builder.prepare_markup(markup, from_encoding))
  File "/usr/local/lib/python2.7/dist-packages/bs4/builder/_lxml.py", line 68, in prepare_markup
    dammit = UnicodeDammit(markup, try_encodings, is_html=True)
  File "/usr/local/lib/python2.7/dist-packages/bs4/dammit.py", line 203, in __init__
    self._detectEncoding(markup, is_html)
  File "/usr/local/lib/python2.7/dist-packages/bs4/dammit.py", line 373, in _detectEncoding
    xml_encoding_match = xml_encoding_re.match(xml_data)
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup python-requests

1
推荐指数
1
解决办法
2163
查看次数

只用urllib2下载html页面

我想用urllib2和beautifulsoup抓取网页.但是我的代码内存不足,有些链接如下:

http://downloads.graboidvideo.com/download_filter.php?file=GraboidVideoSetup.pkg&platform=Mac

这是一个视频下载链接.当我使用urllib2.urlopen()时,它会下载视频,这不是我想要的.有没有办法只下载网址的HTML?如果url引用视频文件或其他文件,我基本上想跳过它,但我不知道该怎么做.

我的代码如下:

toy_url=http://downloads.graboidvideo.com/download_filter.php?file=GraboidVideoSetup.pkg&platform=Mac
headers = {'USER-Agent':'crawltaosof'}
req = urllib2.Request(url, None,headers)
page = urllib2.urlopen(req,timeout=0.51).read()
Run Code Online (Sandbox Code Playgroud)

python urllib2 beautifulsoup

1
推荐指数
1
解决办法
1348
查看次数

以编程方式登录Python Web爬网程序

我正在尝试创建一个网络爬虫,使用我的凭据登录学校网站,然后抓取网站的某些部分.我正在使用这里找到的Beautiful Soup Python库:

http://www.crummy.com/software/BeautifulSoup/bs4/doc/
Run Code Online (Sandbox Code Playgroud)

我可以获得用户名和密码字段的正确源代码,但我不知道如何提供它们.另外,我提交它们也有同样的问题.我已经删除了"提交"按钮的源代码,但我不知道如何请求登录.

谢谢,

python login beautifulsoup web-crawler

1
推荐指数
1
解决办法
4305
查看次数

在另一个标签BeautifulSoup之前找到标签

find_previous在特定标签之前提供标签,但我想在<b>标签上方的<table>标签中查找文本。

"
<h2>Hi</h2>
<b>I am here</b>
<b>Output</b>
<h2>Hi</h2>
<table>
.....
</table>


"
Run Code Online (Sandbox Code Playgroud)

预期输出应为Output。我怎样才能做到这一点?

python beautifulsoup

1
推荐指数
1
解决办法
283
查看次数