使用SoupStrainer有选择地解析

Scr*_*per 4 python beautifulsoup scrape

我试图从购物网站解析一系列视频游戏.但是因为项目列表全部存储在标签内.

据说该文档的这一部分解释了如何解析文档的一部分,但我无法解决.我的代码:

from BeautifulSoup import BeautifulSoup
import urllib
import re

url = "Some Shopping Site"
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
for a in soup.findAll('a',{'title':re.compile('.+') }):
    print a.string
Run Code Online (Sandbox Code Playgroud)

目前在任何标签中打印字符串都有一个非空标题引用.但它也在侧栏中引用了"特价".如果我只能拿产品清单div,我将一石二鸟.

非常感谢.

Scr*_*per 10

哦,我很傻,我正在寻找带有属性id =产品的标签,但它应该是product_list

如果有人来搜索,那就是最后的代码.

from BeautifulSoup import BeautifulSoup, SoupStrainer
import urllib
import re


start = time.clock()
url = "http://someplace.com"
html = urllib.urlopen(url).read()
product = SoupStrainer('div',{'id': 'products_list'})
soup = BeautifulSoup(html,parseOnlyThese=product)
for a in soup.findAll('a',{'title':re.compile('.+') }):
      print a.string
Run Code Online (Sandbox Code Playgroud)


dus*_*san 0

尝试首先搜索产品列表div,然后搜索a带有标题的标签:

product = soup.find('div',{'id': 'products'})
for a in product.findAll('a',{'title': re.compile('.+') }):
   print a.string
Run Code Online (Sandbox Code Playgroud)