【发布时间】:2017-01-26 21:42:03
【问题描述】:
我有一段代码访问links 并尝试在每个link 中找到某些keywords。
最后,如果link 有一个或多个 keywords,它会将其存储在list 中。
但是,当我运行我的代码时,它给了我一个问题:
TypeError: unhashable type: 'list' 在这一行:
for a in soup.find_all('a', class_="result-title hdrlnk", text=re.compile(job_kw,re.IGNORECASE)):
代码如下:
jobs_by_city = [
'http://boston.website.org/search/widget',
]
job_kw = [['web site','user', 'account'],['permission', 'name']]
job_kw = sum(job_kw, [])
jobs = []
for job_in_city in jobs_by_city:
a_job = requests.get(job_in_city)
soup = BeautifulSoup(a_job.text, "lxml")
for a in soup.find_all('a', class_="result-title hdrlnk", text=re.compile(job_kw,re.IGNORECASE)):
print(a.get('href'))
#jobs.append(a.get('href'))
我在这里做错了什么?
【问题讨论】:
-
你用的是哪个“美汤”版本?
re.compile不采用列表作为模式。我认为您可以将列表作为text参数传递。在 BS v4 中,您可以将列表传递给string参数。
标签: python python-3.x parsing beautifulsoup