Недавно я попытался использовать urllib2 и BeautifulSoup для извлечения исходной коеде какой-либо веб-страницы, однако, не удалось с выходом неправильного кода. Сценарий выглядит следующим образом (работает в Python IDLE)Веб-скребок с модулями Python urllib2 и BeautifulSoup
import urllib2
from bs4 import BeautifulSoup
web = "http://www.qq.com"
page = urllib2.urlopen(web)
soup = BeautifulSoup(page, "html.parser")
print soup.prettify()
Я обнаружил, что кодировка «http://www.qq.com» является gb2312, поэтому добавили кое-что в приведенном выше сценарии, как это:
import urllib2
from bs4 import BeautifulSoup
web = "http://www.qq.com"
page = urllib2.urlopen(web)
soup = BeautifulSoup(page, "html.parser", from_encoding="gb2312")
print soup.prettify()
Но результат разочаровывает. Есть ли доступное решение?
скриншот сообщения об ошибке:
Последний выходные я добавил модуль SYS в приведенном выше коде, но ничего не печатает, без предупреждения на этот раз.
#coding=utf-8
import urllib2
from bs4 import BeautifulSoup
import sys
reload(sys)
sys.setdefaultencoding('gbk')
web = "http://www.qq.com"
page = urllib2.urlopen(web)
soup = BeautifulSoup(page, "html.parser")
print soup.prettify()
Спасибо. Я просто изменил «gb2312» на «gb18030» и снова запустил сценарий, но получил тот же результат. Добавлен скриншот сообщения об ошибке. –
Хм. Это сработало для меня. Сообщение об ошибке, которое вы отправили, является ошибкой BeautifulSoup. Какая версия BS у вас есть? 'python -c" import bs4; print bs4 .__ version __ "' – Spencer
Версия 4.4.1. Я пробовал некоторые другие способы публикации в Интернете, но до сих пор не понял. Новый способ ничего не печатает. –