需要关于网页抓取、python中字符串匹配的帮助吗
我试图从网页中提取一些东西。首先,我使用BeautifulSoup提取了一个名为“scores”的div,其中包括几个类似这样的图像需要关于网页抓取、python中字符串匹配的帮助吗,python,web-scraping,Python,Web Scraping,我试图从网页中提取一些东西。首先,我使用BeautifulSoup提取了一个名为“scores”的div,其中包括几个类似这样的图像 <img class="sprite-rating_s_fill rating_s_fill s45" src="http://e2.tacdn.com/img2/x.gif" alt="4.5 of 5 stars"> 我想提取这张图中的分数,在这个例子中是“4.5”。 所以我试着这样做: pattern = re.compile('<i
<img class="sprite-rating_s_fill rating_s_fill s45" src="http://e2.tacdn.com/img2/x.gif" alt="4.5 of 5 stars">
我想提取这张图中的分数,在这个例子中是“4.5”。
所以我试着这样做:
pattern = re.compile('<img.*?alt="(.*?) of 5 stars">', re.S)
items = re.findall(pattern, scores)
pattern=re.compile(“”,re.S)
项目=关于findall(模式、分数)
但它不起作用。
我不熟悉网络抓取,有人能帮我吗?BeautifulSoup实际上可以很容易地从这样的标签中提取信息!假设
scores
是一个BeautifulSoup标记
对象(您可以阅读该对象),您要做的是从标记中提取src
属性:
src = scores['src']
对于您刚才给出的示例,src应该是u'4.5/5星'
。现在您只需去掉“五颗星中的一颗星”
:
removeIndex = src.index(' out of 5 stars')
score = src[:removeIndex]
您将得到
分数为'4.5'
。(如果您想将其作为一个数字进行操作,您必须执行score=float(score)
这项操作,非常感谢。请您也给出一些关于匹配字符串的方法的建议,好吗?我仍然想弄清楚为什么它是错误的