小编nut*_*hip的帖子

BeautufulSoup 4,findNext()函数

我正在玩BeautifulSoup 4,我有这个HTML代码:

</tr>
          <tr>
<td id="freistoesse">Giraffe</td>
<td>14</td>
<td>7</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我想匹配<td>标签之间的两个值,所以这里是14和7.

我试过这个:

giraffe = soup.find(text='Giraffe').findNext('td').text
Run Code Online (Sandbox Code Playgroud)

但这只是匹配14.如何使用此功能匹配这两个值?

python beautifulsoup python-2.7

5
推荐指数
1
解决办法
2万
查看次数

创建Python类方法

我已经熟悉了这个概念,最值得注意的是观看了Raymond Hettinger的精彩视频并阅读了这里接受的答案,我想知道我的错误.

class ReadHTML(object):

    def __init__(self, url):
        page = urlopen(url).read()
        self.page = page

    @classmethod
    def from_file(cls, path):
        page = open(path).read()
        return cls(page)
Run Code Online (Sandbox Code Playgroud)

这有效

r = ReadHTML('http://example.com')
print r.page
Run Code Online (Sandbox Code Playgroud)

而事实并非如此

r = ReadHTML.from_file('example.html')
print r.page 
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误,好像我试图"urlopen"文件:

File "/usr/lib/python2.7/urllib2.py", line 258, in get_type
    raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: <!doctype html>
Run Code Online (Sandbox Code Playgroud)

你能看出什么是错的吗?

python class class-method

4
推荐指数
1
解决办法
382
查看次数

没有名为Tkinter的模块

我在python2.7中有一个小脚本,我想将其转换为Windows可执行文件.我用pyinstaller它.

剧本:

import sys 
import matplotlib.pyplot as plt
import matplotlib.image as mpimg


def get_inputs():
    coor = raw_input(">>>top x left: ").replace(" ", "")
    top, left = coor.split("x")
    top = int(top.strip())
    left = int(left.strip())
    return top, left 

def plot_location(top, left):
    img= mpimg.imread('nbahalfcourt.jpg')
    plt.imshow(img)
    plt.scatter(left, top)
    plt.grid()
    plt.show()

def main():
    top, left = get_inputs()
    plot_location(top, left)

if __name__ == '__main__':

    print "Input top x left coordinates (no space) eg: 44x232"

    run = True 
    while run:
        main()
Run Code Online (Sandbox Code Playgroud)

基本上,脚本只是在网格上绘制一个点.

转换过程成功完成.当我运行.exe但是我已经得到了ImportError(见下文),即使我没有任何参考Tkinter …

python pyinstaller python-2.7

4
推荐指数
1
解决办法
5089
查看次数

在列表中加入特定元组

我最近一直在问这个问题,并且感觉不太需要这么多的帮助,但这个算法看起来很难.

我有一个像这样的元组列表:

[('12 Mar 2011',), ('152', 'Farko', 'Kier'), ('153', 'Park', 'Pub'), ('09 Mar 2011',), ('158', 'Diving', 'Jogging')]
Run Code Online (Sandbox Code Playgroud)

具有日期的元组将始终具有len == 1.现在,我需要将所有以下非日期元组加入每个前一个日期.非日期元组的数量将始终未定义.日期元组将连接序列中的每个非日期元组,直到它接近下一个日期元组,然后该元组必须加入以下所有非日期元组,依此类推.最终结果应该是这样的:

 [('152', 'Farko', 'Kier', '12 Mar 2011'), ('153', 'Park', 'Pub', '12 Mar 2011'), ('158', 'Diving', 'Jogging', '09 Mar 2011',]
Run Code Online (Sandbox Code Playgroud)

如果你不能提供一个准备好的代码,也许有一些提示在哪里查看,是什么方法,因为我无法想到我的工具包中可以做得很好的任何事情.

python list-comprehension python-2.7

3
推荐指数
1
解决办法
99
查看次数

django-filter和聚合函数

这是一个应用程序特定的问题:django-filter,这里是对没有使用它的人的简要说明.

f = ProductFilter(request.GET, queryset=Product.objects.all())
Run Code Online (Sandbox Code Playgroud)

这条线为我们完成了所有过滤.ProductFilter是一个类,我们已经指定了过滤器(类似于表单的类).f是一个过滤器对象(基本上是我们要求的项目),其行为类似于列表.

现在,我想在这个对象上执行aggregate函数(Avg例如)f.您是否有任何想法如何实现?

python django aggregate filter

3
推荐指数
1
解决办法
853
查看次数

从元组中删除空格

我有这个清单:

[('', '', '654', 'Tom', '- Jerry', '', '', ''),
 ('', '', '', '', '', '756', 'X-Man -', 'Batman'), 
 ('453', 'Hulk - Superman', '', '', '', '', '', '')]
Run Code Online (Sandbox Code Playgroud)

如何删除不需要的(主要是外部)字符,使其保持如下:

[('654', 'Tom' , '- Jerry'), 
 ('756', 'X-man' -', Batman'),
 ('435','Hulk - Superman')]
Run Code Online (Sandbox Code Playgroud)

它是一个元组,所以我想我不能使用这个.strip()方法

谢谢.

python tuples strip python-2.7

2
推荐指数
2
解决办法
3285
查看次数

BeautifulSoup,'ResultSet'对象没有属性'find_all'

我读了与我的问题相关的其他线程,但它没有解决问题.

<h2 class="tabellen_ueberschrift al">Cards</h2>
<div class="fl" style="width:49%;">     
<table class="tabelle_grafik lh" cellpadding="2" cellspacing="1">
        <tr>
            <th class="al" colspan="3">CA Osasuna</th>              
        </tr>

            <td class="s10 al">
                <a href="/en/sisi/profil/spieler_51713.html" class="fb s10" title="Sisi">Sisi</a>
                <br />
                26.  min. 2. yellow card, Time wasting              </td>
        </tr>
Run Code Online (Sandbox Code Playgroud)

我想得到表中的所有a标签(会有几个)所以我的代码是这样的:

header = soup.find('h2', text="Cards")
cards_table = header.find_next_siblings(limit=2)
for row in cards_table.find_all('a'):
    print row
Run Code Online (Sandbox Code Playgroud)

这引起了我的兴趣

AttributeError: 'ResultSet' object has no attribute 'find_all'
Run Code Online (Sandbox Code Playgroud)

cards_table是一个表,我用循环迭代它,for所以不知道为什么这会导致错误.想法好吗?

beautifulsoup findall python-2.7

2
推荐指数
1
解决办法
6809
查看次数

计算文件python 2.7中的字符和行

我正在编写一个程序来计算作为输入给出的文件中的所有行,单词和字符.

import string

def main():
    print "Program determines the number of lines, words and chars in a file."
    file_name = raw_input("What is the file name to analyze? ")

    in_file = open(file_name, 'r')
    data = in_file.read()

    words = string.split(data)

    chars = 0
    lines = 0
    for i in words:
        chars = chars + len(i)

    print chars, len(words)


main()
Run Code Online (Sandbox Code Playgroud)

在某种程度上,代码是可以的.

但我不知道如何计算文件中的"空格".我的角色计数器只计算字母,空格被排除在外.
另外,我在计算线条时画了一个空白.

python words batch-file count python-2.7

1
推荐指数
1
解决办法
3万
查看次数

查找最接近cerain值的数字

我有一个元组列表:

lst = [('54', '1.74', '253.2'), ('342', '2.85', '13.46'), ('53','2.43', '15.63')]
Run Code Online (Sandbox Code Playgroud)

我想在[1]最接近2.0的位置找到带有项目的元组

我是这样的:

number = lst[0][1]
for i in lst:
    if abs(float(i[1]) - 2) < float(number):
        number = i[1]
        if number in i:
            print i
Run Code Online (Sandbox Code Playgroud)

但是当我试图将字符串转换为float时会引发异常; /我怎么能真正做到这一点?

python python-2.7

1
推荐指数
1
解决办法
1908
查看次数

匹配除了单词之外的任何东西,正则表达式问题

鉴于这个凌乱的字符串:

66,"Hi":"11.00","sth":"187,"Hi":"13.00"[5]"53","target":{"sth2"
Run Code Online (Sandbox Code Playgroud)

我想匹配13.00sth2(我需要忽略它的Hi11.00).

我的正则表达式"Hi":"(.{0,5})".+"target":{"(.*)"不能这样做,因为它匹配最左边的值Hi,这里:11.00

我正在寻找一种解决方案,它不允许HiHi它自己和这个词之间存在单词target.

python regex python-2.7

1
推荐指数
1
解决办法
310
查看次数