如何在python中添加'features =“ html.parser”'

时间:2019-02-14 21:17:00

标签: python parsing web beautifulsoup

我有一些返回错误的代码: UserWarning:未明确指定解析器,因此我正在为此系统使用最佳的HTML解析器(“ html.parser”)。通常这不是问题,但是如果您在其他系统或不同的虚拟环境中运行此代码,则它可能使用不同的解析器并且行为不同。

引起此警告的代码在文件scrape7.py的第14行上。要消除此警告,请将附加参数'features =“ html.parser”'传递给BeautifulSoup构造函数。

我的代码是:

import numbers
import httplib2
import requests
import re
from bs4 import BeautifulSoup, SoupStrainer

http = httplib2.Http()
status, response = http.request('https://www.macys.com/social/the-edit/')

editurlslist = []

for link in BeautifulSoup(response, parse_only=SoupStrainer('a')):
    if link.has_attr('href'):
        if '/the-edit' in link['href']:
            editurlslist.append(str("https://www.macys.com"+link['href']))

products = []

for i in editurlslist:
   products.append(re.findall(r'(data-thisProduct=\"[0-9]{7}\")', 
   requests.get(i).text))

for i in editurlslist:
   products.append(re.findall(r'(productid=\"[0-9]{7}\")', 
   requests.get(i).text))

products2 = [x for x in products if type(x) in numberic_types]

print(products2)

1 个答案:

答案 0 :(得分:0)

将“ html.parser”参数传递给BeautifulSoup构造函数:

for link in BeautifulSoup(response, "html.parser", parse_only=SoupStrainer('a')):