Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 3.4_Python_Regex - Fatal编程技术网

正则表达式Python 3.4

正则表达式Python 3.4,python,regex,Python,Regex,我目前正在启动一个web scraper,我已经有一段时间没有使用python了。我肯定我也有乱七八糟的代码。哦,好吧 def retrieveHTML(): import re import urllib.request from urllib.request import urlopen urls = ["http://finance.yahoo.com/q?s=^dji", "http://finance.yahoo.com/q?s=^gspc"] i = 0 while i <

我目前正在启动一个web scraper,我已经有一段时间没有使用python了。我肯定我也有乱七八糟的代码。哦,好吧

def retrieveHTML():
import re
import urllib.request
from urllib.request import urlopen


urls = ["http://finance.yahoo.com/q?s=^dji", "http://finance.yahoo.com/q?s=^gspc"]
i = 0
while i < len(urls):

    htmlfile = urllib.request.urlopen(urls[i])
    htmltext = htmlfile.read()

    if (i == 0):
        regex = b'<span id="yfs_110_^dji">(.+?)</span>'
    if (i == 1):
        regex = b'<span id="yfs_110_^gspc">(.+?)</span>'

    pattern = re.compile(regex)
    price = pattern.match(htmltext)
    print (price)
    i += 1
retrieveHTML()
def retrieveHTML():
进口稀土
导入urllib.request
从urllib.request导入urlopen
URL=[”http://finance.yahoo.com/q?s=^dji“http://finance.yahoo.com/q?s=^gspc“]
i=0
而i

正则表达式用于查找股票价格,并返回“无”。您可以通过检查页面顶部的large price元素来找到定义为正则表达式的html,以防出现任何歧义。

字符
^
在正则表达式中具有特殊意义-具体地说,它匹配一行的开头,这似乎不是您想要的。为了匹配实际字符,您必须对其进行转义:

if (i == 0):
    regex = b'<span id="yfs_110_\\^dji">(.+?)</span>'
if (i == 1):
    regex = b'<span id="yfs_110_\\^gspc">(.+?)</span>'
如果(i==0):
正则表达式=b'(.+?)'
如果(i==1):
正则表达式=b'(.+?)'

字符
^
在正则表达式中具有特殊含义-具体来说,它匹配一行的开头,这似乎不是您想要的。为了匹配实际字符,您必须对其进行转义:

if (i == 0):
    regex = b'<span id="yfs_110_\\^dji">(.+?)</span>'
if (i == 1):
    regex = b'<span id="yfs_110_\\^gspc">(.+?)</span>'
如果(i==0):
正则表达式=b'(.+?)'
如果(i==1):
正则表达式=b'(.+?)'

字符
^
在正则表达式中具有特殊含义-具体来说,它匹配一行的开头,这似乎不是您想要的。为了匹配实际字符,您必须对其进行转义:

if (i == 0):
    regex = b'<span id="yfs_110_\\^dji">(.+?)</span>'
if (i == 1):
    regex = b'<span id="yfs_110_\\^gspc">(.+?)</span>'
如果(i==0):
正则表达式=b'(.+?)'
如果(i==1):
正则表达式=b'(.+?)'

字符
^
在正则表达式中具有特殊含义-具体来说,它匹配一行的开头,这似乎不是您想要的。为了匹配实际字符,您必须对其进行转义:

if (i == 0):
    regex = b'<span id="yfs_110_\\^dji">(.+?)</span>'
if (i == 1):
    regex = b'<span id="yfs_110_\\^gspc">(.+?)</span>'
如果(i==0):
正则表达式=b'(.+?)'
如果(i==1):
正则表达式=b'(.+?)'
我知道它离题了,:)

我建议OP在xml包中使用xpath。我也搜刮雅虎这样的网站。xml包为我节省了很多时间和精力。通过正则表达式做任何事情都是一件令人头疼的事。

我知道这是离题的,:)

我建议OP在xml包中使用xpath。我也搜刮雅虎这样的网站。xml包为我节省了很多时间和精力。通过正则表达式做任何事情都是一件令人头疼的事。

我知道这是离题的,:)

我建议OP在xml包中使用xpath。我也搜刮雅虎这样的网站。xml包为我节省了很多时间和精力。通过正则表达式做任何事情都是一件令人头疼的事。

我知道这是离题的,:)


我建议OP在xml包中使用xpath。我也搜刮雅虎这样的网站。xml包为我节省了很多时间和精力。通过正则表达式做任何事情都是一件令人头疼的事。

不看HTML:
^
在正则表达式中表示字符串的开头。你可能需要逃避它。另外,请注意,默认情况下,
与换行符不匹配。你需要设置你应该真正使用yahoo finance API而不是删除他们的HTML页面。不要使用regex来解析HTML,而是使用BeautifulSoup或其他xml解析器。不看HTML:
^
在regex中表示字符串的开头。你可能需要逃避它。另外,请注意,默认情况下,
与换行符不匹配。你需要设置你应该真正使用yahoo finance API而不是删除他们的HTML页面。不要使用regex来解析HTML,而是使用BeautifulSoup或其他xml解析器。不看HTML:
^
在regex中表示字符串的开头。你可能需要逃避它。另外,请注意,默认情况下,
与换行符不匹配。你需要设置你应该真正使用yahoo finance API而不是删除他们的HTML页面。不要使用regex来解析HTML,而是使用BeautifulSoup或其他xml解析器。不看HTML:
^
在regex中表示字符串的开头。你可能需要逃避它。另外,请注意,默认情况下,
与换行符不匹配。你需要设置你应该真正使用yahoo finance API而不是删除他们的HTML页面。不要使用正则表达式来解析HTML,而是使用BeautifulSoup或其他xml解析器。好的建议,快速获得50rep以便你可以评论:)好的建议,快速获得50rep以便你可以评论:)好的建议,快速获得50个代表,这样你就可以发表评论:)好建议,快速获得50个代表,这样你就可以发表评论:)