使用 urllib 进行网页抓取

Web scraping with urllib

我正在尝试进行一些简单的网络抓取,但我一直收到此错误,我不确定是什么问题,因为我是 python

的新手

异常:需要类似字节的对象,而不是 'str'

import time
import urllib.request
import urllib.parse


stock = 'a'


def finvizKeyStats(stock):
    try:
        sourceCode = urllib.request.urlopen('http://finviz.com/quote.ashx?t='+stock).read()
        pbr = sourceCode.split('P/B</td><td width="8%" class="snapshot-td2" align="left"><b>')[1].split('</b></td>')[0]
        print(pbr)
    except Exception as e:
        print('Exception:', e)

finvizKeyStats('a')

您需要将二进制对象解码为字符串:

sourceCodeString = sourceCode.decode()

首先,您必须将二进制对象解码为字符串

sourceCodeString = sourceCode.decode()

我建议您使用 urllib2 和 BeautifulSoup 互联网上有许多关于使用 BeautifulSoup 进行网页抓取的教程。