【发布时间】:2018-07-01 05:15:40
【问题描述】:
我在 urls.csv 中有一个 url 列表
http://www.indianngos.org/ngo_detail.aspx?nprof=292241149
http://www.indianngos.org/ngo_detail.aspx?nprof=9986241242
http://www.indianngos.org/ngo_detail.aspx?nprof=319824125
我的代码如下:
import requests
from bs4 import BeautifulSoup
import csv
with open('urls.csv' , 'r') as csv_file:
csv_reader = csv.reader(csv_file)
for line in csv_reader:
r = requests.get(line[0]).text
soup = BeautifulSoup(r,'lxml')
csv_file = open('output.csv', 'w')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Ngoname', 'CEO', 'City', 'Address', 'Phone', 'Mobile', 'E-mail'])
# print(soup.prettify())
ngoname = soup.find('h1')
print('NGO Name :', ngoname.text)
ceo = soup.find('h2', class_='').text
ceo_name = ceo.split(':')
print('CeoName:', ceo_name[1])
city = soup.find_all('span')
print('City :', city[5].text)
address = soup.find_all('span')
print('Address :', address[6].text)
phone = soup.find_all('span')
print('Phone :', phone[7].text)
mobile = soup.find_all('span')
print('Mobile :', mobile[8].text)
email = soup.find_all('span')
print('Email_id :', email[9].text)
csv_writer.writerow([ngoname.text, ceo_name[1], city[5].text, address[6].text, phone[7].text, mobile[8].text, email[9].text])
csv_file.close()
我只从这个爬虫获取最后一个 url 的数据。 我如何从输出 csv 中的每个 url 获取数据
【问题讨论】:
-
您是否已经尝试调试您的代码?
-
您为什么要使用
csv.reader阅读网址?为什么不只是with open('urls.txt') as f: for url in f: # ...?对文件进行迭代会为您提供行。 -
我试过了,但没有做对。
-
你能@BaileyParker 给我一个示例代码吗?
-
没有。您可以阅读文档并尝试自己编写。我给您的内容实际上是复制并粘贴到您当前的代码中。但是,我们不是来为您完成所有工作的。现在,如果在尝试修复它时遇到另一个问题,请随时提出。
标签: python csv web-scraping beautifulsoup export-to-csv