首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用正则表达式搜索短语?

如何使用正则表达式搜索短语?
EN

Stack Overflow用户
提问于 2014-02-20 15:22:15
回答 3查看 107关注 0票数 0

请帮我修一下剧本。

代码语言:javascript
运行
复制
import urllib
import re
import os
import pprint

import requests
import bs4

stringHtml = urllib.request.urlopen('http://forum.saransk.ru/user/2018-sergey-kalinin/').read().decode('utf-8')
#print(stringHtml)
stringPattern = 'url\suid"\shref="http://vkontakte.ru/id10550933"'
result = re.search(stringPattern, stringHtml)
if result:
    print(result.group())
else:
    print('no result') 

问题是脚本显示“无结果”。正确编译正则表达式。请帮忙找出一个错误

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-20 15:34:09

为什么不使用导入的bs4呢?

如果希望使用类hrefurl打印a元素的uid属性,则可以使用 method (which accept css selector)

代码语言:javascript
运行
复制
import urllib.request

import bs4

stringHtml = urllib.request.urlopen('http://forum.saransk.ru/user/2018-sergey-kalinin/').read()#.decode('utf-8')
soup = bs4.BeautifulSoup(stringHtml)
for a in soup.select('a.url.uid'):
    print(a.get('href'))

# If you want to check whether the a tag with `href="http://vkontakte..."` exist,
#   use following lines instead.
# (CSS Selector `a.url.uid[href="..."]` does not work with bs4.
#  bs4 supports most commonly-used CSS selectors, not all of them)
#print(any(a.get('href') == 'http://vkontakte.ru/id10550933'
#      for a in soup.select('a.url.uid')))

产出:

代码语言:javascript
运行
复制
http://vkontakte.ru/id10550933
票数 3
EN

Stack Overflow用户

发布于 2014-02-20 15:27:50

我敢肯定你的正则表达式有错误。您正在寻找文本:

url uid“href://vkontakte.ru/uid 10550933”

看上去是空格错误?

票数 0
EN

Stack Overflow用户

发布于 2014-02-20 15:44:13

页面源显示

代码语言:javascript
运行
复制
<a class="url uid" rel="external me" href="http://vkontakte.ru/id10550933">http://vkontakte.ru/id10550933</a>

所以你想要的是

代码语言:javascript
运行
复制
import bs4
import requests

url = 'http://forum.saransk.ru/user/2018-sergey-kalinin/'
html = requests.get(url).content
page = bs4.BeautifulSoup(html)
link = page.find("a", {"class": "url uid"})
print(link["href"])

这给

代码语言:javascript
运行
复制
http://vkontakte.ru/id10550933
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21912069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档