使用.append

时间:2016-01-08 08:52:47

标签: list python-2.7 beautifulsoup append

import requests
from BeautifulSoup import BeautifulSoup

url = 'http://www.showmeboone.com/sheriff/JailResidents/JailResidents.asp'
response = requests.get(url)
html = response.content

soup = BeautifulSoup(html)
table = soup.find('table', attrs={'class': 'collapse shadow BCSDTable'})

for row in table.findAll('tr'):
    list_of_cells = []
    for cell in row.findAll('td'):
        text = cell.text
        print text
        list_of_cells.append(text)
    print list_of_cells

我上面的python 2.7代码

我在Windows PowerShell下面的输出

PS D:\learnpython> python webscraper.py
[]
[]
[]
ACTON
CLINTON
WAYNE
M
W
35
STURGEON
MO
[u'ACTON', u'CLINTON', u'WAYNE', u'M', u'W', u'35', u'STURGEON', u'MO']
ALLEN
SHAUN
PHILLIP
M
W
28
COLUMBIA
MO
[u'ALLEN', u'SHAUN', u'PHILLIP', u'M', u'W', u'28', u'COLUMBIA', u'MO']
ANDERSON
ISAIAH
DWIGHT
M
B
19
COLUMBIA
MO
[u'ANDERSON', u'ISAIAH', u'DWIGHT', u'M', u'B', u'19', u'COLUMBIA', u'MO']
ANDREWS
SHEENA
MARIE
F
W
30
COLUMBIA
MO
[u'ANDREWS', u'SHEENA', u'MARIE', u'F', u'W', u'30', u'COLUMBIA', u'MO']
ASH
DONALD
DEAN
M
W
45
COLUMBIA
MO
[u'ASH', u'DONALD', u'DEAN', u'M', u'W', u'45', u'COLUMBIA', u'MO']
AVERY
DYLAN
KENT
M
W
19
COLUMBIA
MO
[u'AVERY', u'DYLAN', u'KENT', u'M', u'W', u'19', u'COLUMBIA', u'MO']
BANKS
TIMOTHY
MAURICE
M
B
35
COLUMBIA
MO
[u'BANKS', u'TIMOTHY', u'MAURICE', u'M', u'B', u'35', u'COLUMBIA', u'MO']
BARNEY
MAXRILE
MARKEE
M
B
29
COLUMBIA
MO
[u'BARNEY', u'MAXRILE', u'MARKEE', u'M', u'B', u'29', u'COLUMBIA', u'MO']
BARR
DEBORAH
LYNN
F
W
51
COLUMBIA
MO
[u'BARR', u'DEBORAH', u'LYNN', u'F', u'W', u'51', u'COLUMBIA', u'MO']
BERGMAN
DARNELL
CORTEZ
M
B
35
COLUMBIA
MO
[u'BERGMAN', u'DARNELL', u'CORTEZ', u'M', u'B', u'35', u'COLUMBIA', u'MO']
BERRY
ISAIAH
LORENZ
M
B
18
COLUMBIA
MO
[u'BERRY', u'ISAIAH', u'LORENZ', u'M', u'B', u'18', u'COLUMBIA', u'MO']
BIRKEMEIER
ALEX
WILLIAM
M
W
25
FLORISSANT
MO
[u'BIRKEMEIER', u'ALEX', u'WILLIAM', u'M', u'W', u'25', u'FLORISSANT', u'MO']
BOTKINS
DAVID
EUGENE
M
W
32
COLUMBIA
MO
[u'BOTKINS', u'DAVID', u'EUGENE', u'M', u'W', u'32', u'COLUMBIA', u'MO']
BOWEN
DYLAN
MATTHEW EARL
M
W
24
COLUMBIA
MO
[u'BOWEN', u'DYLAN', u'MATTHEW EARL', u'M', u'W', u'24', u'COLUMBIA', u'MO']
BOWERS
LUCIUS
CLARENCE
M
B
39
COLUMBIA
MO
[u'BOWERS', u'LUCIUS', u'CLARENCE', u'M', u'B', u'39', u'COLUMBIA', u'MO']
BRANDES
NICHOLAS
SCOTT
M
W
32
COLUMBIA
MO
[u'BRANDES', u'NICHOLAS', u'SCOTT', u'M', u'W', u'32', u'COLUMBIA', u'MO']
BREWSTER
GREGORY
LASHUN
M
B
19
COLUMBIA
MO
[u'BREWSTER', u'GREGORY', u'LASHUN', u'M', u'B', u'19', u'COLUMBIA', u'MO']
BROADUS
WILLIAM
ANTHONY
M
B
29
COLUMBIA
MO
[u'BROADUS', u'WILLIAM', u'ANTHONY', u'M', u'B', u'29', u'COLUMBIA', u'MO']
BROWN
CHAKA
AISHA
F
B
37
COLUMBIA
MO
[u'BROWN', u'CHAKA', u'AISHA', u'F', u'B', u'37', u'COLUMBIA', u'MO']
BROWN
LARRY
JOHN
M
B
33
COLUMBIA
MO
[u'BROWN', u'LARRY', u'JOHN', u'M', u'B', u'33', u'COLUMBIA', u'MO']
BRYANT
JEREL
C.
M
B
36
MOBERLY
MO
[u'BRYANT', u'JEREL', u'C.', u'M', u'B', u'36', u'MOBERLY', u'MO']
BUNTYN
JAMMIE
LEE
M
B
25
COLUMBIA
MO
[u'BUNTYN', u'JAMMIE', u'LEE', u'M', u'B', u'25', u'COLUMBIA', u'MO']
BUTLER
DEANGELO
MONTREZ
M
B
25
COLUMBIA
MO
[u'BUTLER', u'DEANGELO', u'MONTREZ', u'M', u'B', u'25', u'COLUMBIA', u'MO']
BUTLER
FRANK
SHURELL
M
B
39
COLUMBIA
MO
[u'BUTLER', u'FRANK', u'SHURELL', u'M', u'B', u'39', u'COLUMBIA', u'MO']
BUTLER
JEMELL
DUPRUE
M
B
19
COLUMBIA

[u'BUTLER', u'JEMELL', u'DUPRUE', u'M', u'B', u'19', u'COLUMBIA', u'']
BUTLER
TERRY
LEON
M
B
53
COLUMBIA
MO
[u'BUTLER', u'TERRY', u'LEON', u'M', u'B', u'53', u'COLUMBIA', u'MO']
BUTNER
TRESHAUN
DEVION
M
B
21
COLUMBIA
MO
[u'BUTNER', u'TRESHAUN', u'DEVION', u'M', u'B', u'21', u'COLUMBIA', u'MO']
CAMPBELL
WILLIAM
SHAKHEEM
M
B
17
COLUMBIA
MO
[u'CAMPBELL', u'WILLIAM', u'SHAKHEEM', u'M', u'B', u'17', u'COLUMBIA', u'MO']
CHAMBERS
AUSTIN
LEE
M
W
27
COLUMBIA
MO
[u'CHAMBERS', u'AUSTIN', u'LEE', u'M', u'W', u'27', u'COLUMBIA', u'MO']
CHICK
JAMIE
LEE
M
W
31
COLUMBIA
MO
[u'CHICK', u'JAMIE', u'LEE', u'M', u'W', u'31', u'COLUMBIA', u'MO']
CLARK
MARCUS
TERILE
M
B
32
KANSAS CITY
MO
[u'CLARK', u'MARCUS', u'TERILE', u'M', u'B', u'32', u'KANSAS CITY', u'MO']
CLARO-RIVERA
JONI
JAVIER
M
H
20
COLUMBIA
MO
[u'CLARO-RIVERA', u'JONI', u'JAVIER', u'M', u'H', u'20', u'COLUMBIA', u'MO']
COCKRELL
WILLIAM
ELMER
M
W
50
COLUMBIA
MO
[u'COCKRELL', u'WILLIAM', u'ELMER', u'M', u'W', u'50', u'COLUMBIA', u'MO']
COFIELD
CHRISTOPHER
NEAL
M
B
43
COLUMBIA
MO
[u'COFIELD', u'CHRISTOPHER', u'NEAL', u'M', u'B', u'43', u'COLUMBIA', u'MO']
COMMANDER
JAVANTE
BRUCE
M
B
20
COLUMBIA
MO
[u'COMMANDER', u'JAVANTE', u'BRUCE', u'M', u'B', u'20', u'COLUMBIA', u'MO']
COOPER
TRE
LAMONT
M
B
23
COLUMBIA
MO
[u'COOPER', u'TRE', u'LAMONT', u'M', u'B', u'23', u'COLUMBIA', u'MO']
COOPER
WILLIAM
DEONTE
M
B
35
MACON
MO
[u'COOPER', u'WILLIAM', u'DEONTE', u'M', u'B', u'35', u'MACON', u'MO']
COZEAN
KIRSTIE
ANN
F
W
24
JOPLIN
MO
[u'COZEAN', u'KIRSTIE', u'ANN', u'F', u'W', u'24', u'JOPLIN', u'MO']
CRAIG
BREAH
NICHOLE
F
B
23
COLUMBIA
MO
[u'CRAIG', u'BREAH', u'NICHOLE', u'F', u'B', u'23', u'COLUMBIA', u'MO']
CROSS
TAMARA
SHAWNTISE
F
B
35
COLUMBIA
MO
[u'CROSS', u'TAMARA', u'SHAWNTISE', u'F', u'B', u'35', u'COLUMBIA', u'MO']
CROWLEY
MIKEL
DERRICE
M
B
20
COLUMBIA
MO
[u'CROWLEY', u'MIKEL', u'DERRICE', u'M', u'B', u'20', u'COLUMBIA', u'MO']
CUNNINGHAM
MEGAN
NICOLE
F
W
21
HALLSVILLE
MO
[u'CUNNINGHAM', u'MEGAN', u'NICOLE', u'F', u'W', u'21', u'HALLSVILLE', u'MO']
CUNNINGHAM
MYLONYO
TRAMIRE
M
B
23
COLUMBIA
MO
[u'CUNNINGHAM', u'MYLONYO', u'TRAMIRE', u'M', u'B', u'23', u'COLUMBIA', u'MO'
DALTON
RAYMOND
RUSH
M
W
20
MILLERSBURG
MO
[u'DALTON', u'RAYMOND', u'RUSH', u'M', u'W', u'20', u'MILLERSBURG', u'MO']
DAVID
BRADLY
GENE
M
W
48
COLUMBIA
MO
[u'DAVID', u'BRADLY', u'GENE', u'M', u'W', u'48', u'COLUMBIA', u'MO']
DAVIS
TONY
LA'CONDA
M
B
50
COLUMBIA
MO
[u'DAVIS', u'TONY', u"LA'CONDA", u'M', u'B', u'50', u'COLUMBIA', u'MO']
DENNY
DEANDRE
LAVELLE
M
B
19
COLUMBIA
MO
[u'DENNY', u'DEANDRE', u'LAVELLE', u'M', u'B', u'19', u'COLUMBIA', u'MO']
DICKERSON
CORNELIUS
ODELL
M
B
42
COLUMBIA
MO
[u'DICKERSON', u'CORNELIUS', u'ODELL', u'M', u'B', u'42', u'COLUMBIA', u'MO']
DONIGIAN
CHARLES
ROSS
M
W
20
COLUMBIA
MO
[u'DONIGIAN', u'CHARLES', u'ROSS', u'M', u'W', u'20', u'COLUMBIA', u'MO']
DUDLEY
FLOYD
WILLIAM
M
B
28
COLUMBIA
MO
[u'DUDLEY', u'FLOYD', u'WILLIAM', u'M', u'B', u'28', u'COLUMBIA', u'MO']
PS D:\learnpython>

我正在尝试使用Python 2.7中的BeautifulSoup从网站上抓取数据。我能够从每个单元格中提取数据,我可以将它们打印得很好,它们看起来就像没有“u”一样。当我尝试将它们放在带有.append函数的列表中时,在每个单词之前添加“u”。我不确定这个'你'来自哪里,因为当每个单词单独打印时我都看不到它,我不知道如何摆脱它。它来自.append函数吗?我无法弄清楚这一点。另外,我不确定3个空括号在输出顶部的位置。任何帮助将不胜感激。

Link to what I see when I look at the HTML

Link to the web scraping tutorial I am following along with

1 个答案:

答案 0 :(得分:1)

清空清单

括号[]表示一个空列表,您可以在<tr> for循环的每次迭代中打印出来。 您可以在将列表打印到stdout之前检查列表的长度。

    if len(list_off_cells) > 0:
        print list_of_cells

该文档可能包含tr标签,其中没有任何td标签。 <th>标记内的<tr>标记就是这种情况。

&#34;隐藏&#34;字符

当你打印出单元格列表时,字符串前面的u表示这是一个unicode字符串。

BeautifulSoup模块首先将HTML文档转换为unicode。因此,当您访问特定元素时,文本值会产生unicode值。

以下简短示例应该让您看到:

# This is a list of unicode strings
l = [u"cell1", u"cell2"]
# print the list
print l
# Print the type of the first element of the list
print type(l[0])

上述脚本的输出:

[u'cell1', u'cell2']
<type 'unicode'>

请参阅Unicode HowTo