2016-03-11 2 views
1

Я написал файл script, чтобы разобрать html и распечатать только текстовое содержимое. Я хотел игнорировать теги. Но у моей программы есть проблема. Я не уверен, что это такое. Пожалуйста, помогите мне.TypeError: ожидаемая строка или байтоподобный объект

enter image description here

import urllib.request 
import re 
from bs4 import BeautifulSoup 
url = "www.example.com" 

def hi(): 
    dep = urllib.request.urlopen(url) 
    soup = BeautifulSoup(dep, 'html.parser') 
    for link in soup.find_all('p', string=True): 
     result = re.sub(b'<.*?>', "", link) 
     print (result) 
hi() 

Сайт link.

+0

добавить код здесь. –

+0

и обязательно включите полную трассировку в виде текста и то, что вы пытались решить проблему. – timgeb

+0

@ Vasanth опубликуйте код, а не URL, который вы пытались очистить. –

ответ

6

Я считаю, что у вас есть NavigableString в link переменная.

Force брось в строку, как:

for link in soup.find_all('p', string=True): 
    result = re.sub(b'<.*?>', "", str(link)) 
    print (result) 
+0

Но теперь он показывает мне TypeError: не может использовать шаблон байта на подобном строке объекте. –

+0

изменить 'b '<.*?>'' to 'r '<.*?>''. –

+0

Урайийы ... Большое вам спасибо. Вы можете объяснить эту строку? потому что я скопировал эту строку из другого кода. Я не знаю, что такое логика :) –

Смежные вопросы