我觉得我犯了个愚蠢的错误。我试图从一个网站上截取一些数据,我可以解析数据,但它不能写入csv。我对python是一个完全的初学者,对此我有些挠头。你知道吗
以下是我目前的代码:
import requests
import csv
from bs4 import BeautifulSoup
base_url = "http://www.example.com/"
total_pages = 100
def parse_content(r):
soup = BeautifulSoup(r.content,'lxml')
g_data = soup.find_all('ul', {"class": "searchResults"})
for item in g_data:
for li in item.findAll('li'):
for resultnameh2 in li.findAll('h2'):
for resultname in resultnameh2.findAll('a'):
cname = resultname.text
for resultAddress in li.findAll('p', {"class": "resultAddress"}):
caddress = resultAddress.text.replace('Get directions','').strip()
for resultContact in li.findAll('ul', {"class": "resultContact"}):
for resultContact in li.findAll('a', {"class": "resultMainNumber"}):
ccontact = resultContact.text
for page in range(1, total_pages):
response = requests.get(base_url + '/' + str(page))
if response.status_code != 200:
break
parse_content(response)
csvdata = parse_content(response)
with open('index.csv', 'a') as csv_file:
writer = csv.writer(csv_file)
writer.writerow([csvdata])
您需要返回值
cname
、caddress
、ccontact
的值已在函数parse_content
的上下文中设置,因此在csv writer的for
循环中不可用。你知道吗您需要返回这些值或在
parse_content
方法中移动csv writer。你知道吗相关问题 更多 >
编程相关推荐