更新:我用这样的代码测试了我的正则表达式:
import re
pattern = r'^data-id="*/d"$'
html='data-id="89897907"'
m=re.search(pattern,html)
print m.group()
我没有任何人。
我正在使用python编写一个web-spider,但是当我尝试使用Regular Expression来获取所有字符串时,例如“data-id =”798789“”我遇到了一个问题。 我的代码如下:
import sys
import urllib
import urllib2
import cookielib
import re
from urllib2 import Request, urlopen, URLError, HTTPError
url="https://www.secure.pixiv.net/login.php"
#Process the cookie
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
#POST data to Pixiv
headers = {'User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0'}
values={'mode':'login','pixiv_id':'username','pass':'password','skip':'1'}
data=urllib.urlencode(values)
req=urllib2.Request(url,data)
#ERRORS
try:
response = opener.open(req,timeout=10)
except URLError, e:
if hasattr(e, 'code'):
print 'The server couldn\'t fulfill the request.'
print 'Error code: ', e.code
elif hasattr(e, 'reason'):
print 'We failed to reach a server.'
print 'Reason: ', e.reason
else:
print 'No exception was raised.'
res=opener.open('http://www.pixiv.net/ranking.php?mode=daily')
html = res.read()
pattern = r'^data-id="*/d"$'
m=re.search(pattern,html)
print m.group()
我运行代码得到了一些没有。有什么不对吗?
答案 0 :(得分:2)
我尝试使用正则表达式来获取所有字符串,例如“data-id =”798789“”
pattern = r'^data-id="\d*"$'
猜猜你需要这个。事实上,如果这些不是行使用的唯一内容
r'\bdata-id="\d*"' or r'\bdata-id="\d+"'
参见演示。