Python中文
首页
教程
问答
标签
搜索
登录
注册
看似简单的python正则表达式不匹配
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在使用BeautifulSoup(python)的find\u all函数和regex来从网页上刮取一些数据。非常明确地说,我正在从<a href="http://www.avito.ru/rossiya" rel="nofollow">here</a>中删除单个分类广告。如果检查每个分类广告,可以看到它们通常封装在以下任何一个div中:</p> <pre><code><div class="item c-b-#">...</div> </code></pre> <p>或者</p> <pre><code><div class="item c-b-# premium">...</div> </code></pre> <p>其中<code>#</code>是一个数字(通常为0或2)。你知道吗</p> <p>我的目标是用正则表达式来区分这两个。以下是我所做的:</p> <pre><code>regularAds = soup.find_all('div', attrs={'class': re.compile('item.*')}) </code></pre> <p>以及</p> <pre><code>premiumAds = soup.find_all('div', attrs={'class': re.compile('item.*premium')}) </code></pre> <p>前者像expeced一样工作-它返回<i>所有<i>分类广告(包括溢价),但后者不返回任何内容。怎么了?为什么<code>'item.*premium'</code>不映射到第二个div类?你知道吗</p> <p>作为第二个问题:我将如何修改第一个regex来表示“我想要所有有<code>'item'</code>这个词但没有<code>'premium'</code>这个词的正则表达式?”?你知道吗</p> <p><strong>编辑</p> <p>供将来参考:经过一番反复试验,我的第二个问题的答案变成了:</p> <pre><code>regularAds = [tag for tag in soup.find_all('div', attrs={'class': re.compile('item')}) if 'premium' not in tag['class']] </code></pre> <p>效果不错。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我的快速猜测是,beautiful soup中的<code>class</code>基本上是对class属性的实际文本调用<code>class.split(' ')</code>的结果。如果你做了:</p> <pre><code>premiumAds = soup.find_all('div', attrs={'class': 'premium'}) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何合并多个PDF文件?
10 回答
如何合并多个xarray数据变量及其坐标?
4 回答
如何合并多个列中具有重复值的行
6 回答
如何合并多个唯一id
4 回答
如何合并多个图纸并使用图纸名称的名称重命名列名?
3 回答
如何合并多个字典并添加同一个键的值?(Python)
8 回答
如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?
8 回答
如何合并多个数据帧
9 回答
如何合并多个数据帧并使用Pandas为假人添加列?
8 回答
如何合并多个数据帧并按时间戳排序
2 回答
如何合并多个数据帧的列表并用另一个lis标记每列
4 回答
如何合并多个数据框中的列
5 回答
如何合并多个文件?
9 回答
如何合并多个查询集?
3 回答
如何合并多个绘图?
8 回答
如何合并多个词典
8 回答
如何合并多个输入数据集(数据帧)?
1 回答
如何合并多条记录中拆分的文本行
5 回答
如何合并多索引列datafram
9 回答
如何合并多级(即多索引)数据帧?
10 回答