Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要关于网页抓取、python中字符串匹配的帮助吗_Python_Web Scraping - Fatal编程技术网

需要关于网页抓取、python中字符串匹配的帮助吗

需要关于网页抓取、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

我试图从网页中提取一些东西。首先,我使用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('<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)

这项操作,非常感谢。请您也给出一些关于匹配字符串的方法的建议,好吗?我仍然想弄清楚为什么它是错误的