2017-09-04 1 views
-2

내 목표는 웹 사이트에서 특정 데이터를 검색 할 수있는 python 스크립트를 작성하는 것입니다. 특히 난 그 데이터를 추출 할 수있다 :Python beautifulsoup CSV 파일에 쓸 수 없습니다.

<span class="street-address" itemprop="streetAddress">191, Corso Peschiera</span> 

<div itemprop="telephone" class="tel elementPhone">0184 662271</div> 

을 수만 물론 어드레스!

나는 일반 'div'또는 'a'또는 'href'를 추출하려고하지만 문제는 없지만 연구를 개선 할 수는 없습니다.

여기에 내가 soup.find_all ('A') 도움

from bs4 import BeautifulSoup 
import requests 

r = requests.get('https://www.paginegialle.it/ricerca/lidi%20balneari/Torino?') 
data = r.text 
soup = BeautifulSoup(data,"html.parser") 
dia = soup.find_all('<div itemprop="telephone" class="tel elementPhone"></div>') 

for link in soup.find_all('<div itemprop="telephone" class="tel elementPhone"></div>'): 
    print (dia) 

documento=open("mbsprovalive.csv","w") 
    documento.write(dia) 
     documento.close() 

타이처럼 만 인수를 BS4을 통과하지 않는 한 내가 파일에 쓸 수 아니에요 .... 내 코드입니다! !

+0

'soup.find_all ('

')'이 효과가 있다는 것을 어디에서 읽었습니까? 이 호출의 반환 값을 살펴 보았습니까? 문서를 보셨습니까? – Tomalak

+0

설명서를 읽으십시오. https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all. 'find_all()'에 대한 첫 번째 위치 인수는 태그 이름이며 일부 html 코드는 아닙니다. 속성을 기반으로 필터링하려면 적절한 키워드 인수를 전달하거나 dict를'attrs' arg로 전달하십시오. –

+0

@Tomalak 물마루 문서 나는 모든 대답을 찾을 수있는 스크립트를 만들 수 있었다. –

답변

0

당신은 너무 같이 당신의 관심이 무엇 클래스 정확히 지정 bs4attrs 필드를 사용할 수 있습니다 :이

#!/usr/bin/env python 

from bs4 import BeautifulSoup 
import requests 

data = requests.get('your url here').text 
soup = BeautifulSoup(data,"html.parser") 

for i,j in zip(soup.find_all('span', attrs={'class':'street-address'}), soup.find_all('div', attrs={'class':'tel elementPhone'})): 
    print i.text, j.text 

작동합니다!

+0

안녕하세요! 도와주세요! 이것은 출력입니다 >>> from bs4 import BeautifulSoup >>> 가져 오기 요청 >>> >>> data = requests.get ('https://www.paginegialle.it/ricerca/lidi%20balneari/Roma% 2015 (RM)? '). 텍스트 >>> soup = BeautifulSoup (data, "html.parser") >>> >>> for i, j for zip (soup.find_all ('span ', attrs =... print (i.text, j.text) : print (i.text, j.text) : print (i.text, j.text) ... 역 추적 (마지막으로 가장 최근 통화) : 파일 "", 2 호선, 형식 오류에는 'NoneType'개체 내가 코드를 실행하고 어떤 문제에 직면하지 –

+0

호출하지 않습니다. 문제는 파이썬에서'requests' 모듈을 사용할 때 url에서 ** http ** 부분을 절대로 생략해서는 안된다는 것입니다. 따라서 데이터를 다음과 같이 정의하십시오 :'data = requests.get ('https://www.paginegialle.it/ricerca/lidi%20balneari/Roma%20 (RM)? % 27') .text' 발행물! – coder

0
from bs4 import BeautifulSoup 
import requests 
import csv 
r = requests.get('https://www.paginegialle.it/ricerca/pizzerie/Milano? 
mr=50') 
data = r.text 
soup = BeautifulSoup(data,"html.parser") 
with open('mbsprprova.csv', 'w') as csvfile: 
fieldnames = ['nome','indirizzo','telefono'] 
writer=csv.DictWriter(csvfile, fieldnames=fieldnames) 
for i,j,z in zip(soup.find_all('span', attrs={'class':'street-address'}), 
soup.find_all('div', attrs={'class':'tel 
elementPhone'}),soup.find_all('span', 
attrs={'itemprop':'name'})): 
    writer.writeheader() 
    writer.writerow({'nome':z.text,'telefono': j.text,'indirizzo':i.text}) 

여기 코드가 완벽하게 작동합니다. 단지 성가신 형식 문제 만 있습니다. 도움을 주신 모든 분들께 감사드립니다 .... 나는 downbotes에 대해 슬프다. 나는 멍청하다. 나는 게시하기 전에 많은 답변을 찾았다. :)

관련 문제