我正在尝试根据搜索字词从网站中提取链接并将其写入csv文件。文件已创建但链接未写入其中。我得到错误 - 字符串索引必须是整数,而不是str。
无法弄清楚我的错误。
from pprint import pprint
import requests
import lxml
import csv
from bs4 import BeautifulSoup
def get_url_for_search_key(search_key):
base_url = 'http://www.marketing-interactive.com/'
response = requests.get(base_url + '?s=' + search_key)
soup = BeautifulSoup(response.content, "lxml")
return [url['href'] for url in soup.findAll('a', {'rel': 'bookmark'})]
pprint(get_url_for_search_key('digital marketing'))
with open('ctp_output.csv', 'wb') as f:
writer = csv.writer(f)
for url in get_url_for_search_key('digital marketing'):
writer.writerows( url['href'] )
答案 0 :(得分:0)
您的函数返回列表,其中url为字符串。 所以你不需要url ['href'],因为它已经在你的功能中得到了照顾。
尝试
writer.writerows( url )
而不是:
writer.writerows( url['href'] )
我不知道csv模块是如何工作的,但你不需要这里的csv
尝试:
with open('ctp_output.csv', 'w') as f:
f.write('\n'.join(get_url_for_search_key('digital marketing')))