编辑:
这是我的实际代码。我在用美素来刮。一旦清除完成,我使用漂白剂和cleanhtml函数从每个日期条目中删除HTML代码。你知道吗
import mechanize
from bs4 import BeautifulSoup as BS
import urllib2
import bleach
import re
import datetime as dt
def cleanhtml(raw_html):
cleanr =re.compile('<.*?>')
cleantext = re.sub(cleanr,'', raw_html)
return cleantext
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [("User-agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13")]
sign_in = br.open('https://www.mturk.com/mturk/beginsignin')
br.select_form(name="signIn")
br["email"] = 'xxxx'
br["password"] = 'xxxxx'
logged_in = br.submit()
mturk = br.open("https://www.mturk.com/mturk/status")
soup = BS(mturk.read())
date_column_values_raw = soup.findAll("td", "statusDateColumnValue")
date_column_values = bleach.clean(date_column_values_raw, strip=True)
date_column_values = cleanhtml(date_column_values)
我创建的Python列表有问题。我刮了一页,我有一个日期列表,看起来像这样:
[
Apr 6, 2015
,
Apr 5, 2015
,
Apr 4, 2015
,
Apr 3, 2015
]
我的目标是将这些日期转换为数据库友好的格式,即2015-04-03
我的问题是,只要我尝试在for循环中遍历它们,循环就会分别处理每个字符,而不是按行处理。你知道吗
所以,当我这么做的时候:
for line in date_values:
print line
我得到: [
A
p
r
6
,
2
0
1
5
,
]
等等。。。这显然不是预期的结果。你知道吗
我试过了行。拆分()on/n和for循环中的5,但没有效果。所以我的问题是,一旦我有了我的临时列表,我该如何将每一行数据转换成单独的字符串?你知道吗
如果你有任何见解,我将不胜感激。你知道吗
谢谢!你知道吗
似乎您的
date_values
“list”根本不是一个列表,而只是一个多行字符串。你知道吗您可以使用
str.split()
分割该字符串,但不能在for
循环中这样,您将尝试分割每个字符!相反,试试这个列表。你知道吗在这里,
[1:-1]
去掉了[
和]
,然后用一个新行和逗号分开(单独两个都不行),最后是strip
和空格。你知道吗或者先按行拆分,然后将去掉空白后剩下一个以上字符的所有行:
现在,} and ^{} 重新格式化日期,例如:
date_list
是['Apr 6, 2015', 'Apr 5, 2015', 'Apr 4, 2015', 'Apr 3, 2015']
。然后可以使用^{输出:
相关问题 更多 >
编程相关推荐