나는 파이썬 &에 익숙해 져서 BeautifulSoup, Python으로 아래 작업을하고있다.문자열을 찾고 파이썬에서 stdout으로 반환하는 방법
이 예상된다 무엇 : 스크립트의 출력은 아래의 문자열 5378
이 포함 된 경우
*, 그것은 문자열이 나타나는 선으로 나에게 이메일을 보내해야합니다.
#! /usr/bin/env python
from bs4 import BeautifulSoup
from lxml import html
import urllib2,re
import codecs
import sys
streamWriter = codecs.lookup('utf-8')[-1]
sys.stdout = streamWriter(sys.stdout)
BASE_URL = "http://outlet.us.dell.com/ARBOnlineSales/Online/InventorySearch.aspx?c=us&cs=22&l=en&s=dfh&brandid=2201&fid=111162"
webpage = urllib2.urlopen(BASE_URL)
soup = BeautifulSoup(webpage.read(), "lxml")
findcolumn = soup.find("div", {"id": "itemheader-FN"})
name = findcolumn.text.strip()
print name
나는
findall(5378, name)
를 사용하여 시도하지만,이
[]
같은 괄호를 비워 반환합니다.
grep
과 함께 사용하려고하면 유니 코드 문제로 고민하고 있습니다.
$ python dell.py | grep 5378 Traceback (most recent call last): File "dell.py", line 18, in <module> print name UnicodeEncodeError: 'ascii' codec can't encode character u'\u201d' in position 817: ordinal not in range(128)
사람은 내가 두 경우 모두 잘못 뭐하는 거지 말씀해 주시겠습니까?
어떤 운영 체제 및 버전이 있습니까? – chrki
파이핑을 사용할 때'print'는 어떤 인코딩을 사용하는지 알지 못하기 때문에 스스로 인코딩해야합니다. 'print name.encode ('utf-8')' – furas
check in doc - 잘 모르겠지만'findall'는 태그 이름을 첫 번째 인자로 생각합니다. '5378'은 태그 이름이 아닙니다. – furas