2017-12-22 1 views
0

미안하지만, 아는 사람이라면 가르쳐 주셔서 감사합니다. 마케팅 목적으로 긁어 모으기 위해 긁고있는 도구를 만들고 있습니다. . 웹 사이트에서 연락처 정보를 내가 파이썬 3 를이 내 코드되어 사용하고 있습니다 : 그것은 나를 일이 같은 얻는 이유'% s'에 대한 연결 어댑터가 없습니다. "% url

import requests, bs4, os, codecs, csv 
import pandas as pd 
import sys 

os.path.join('usr', 'bin', 'spam') 
openFile = open('C:\\Users\\hdtra\\Desktop\\Test_1.csv',encoding='utf-8-sig') 

read_test = csv.reader(openFile) 


for link in read_test : 
    res = requests.get(link) 
    res.raise_for_status 
    facebookSpider = bs4.BeautifulSoup(res.text) 
    email = facebookSpider.select("._4-u2._3xaf._3-95._4-u8") 
    helloFile = open('C:\\Users\\hdtra\\Desktop\\In processing\\information.txt','w') 
    helloFile.write(str(email[3].encode('utf-8')) + '\n') 
    helloFile.close() 

아무 생각 유무 :

Traceback (most recent call last): 
    File "C:\Users\hdtra\Desktop\In processing\Facebook_spider.py", line 12, in <module> 
    res = requests.get(link) 
    File "C:\Program Files\Python36\lib\site-packages\requests\api.py", line 72, in get 
    return request('get', url, params=params, **kwargs) 
    File "C:\Program Files\Python36\lib\site-packages\requests\api.py", line 58, in request 
    return session.request(method=method, url=url, **kwargs) 
    File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 508, in request 
    resp = self.send(prep, **send_kwargs) 
    File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 612, in send 
    adapter = self.get_adapter(url=request.url) 
    File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 703, in get_adapter 
    raise InvalidSchema("No connection adapters were found for '%s'" % url) 
requests.exceptions.InvalidSchema: No connection adapters were found for '['http://www.facebook.com/D2Streetwear/?ref=br_rs']' 

나는 get()은 문자열을 가져옵니다 것을 알고, 이 링크를 문자열로 변환하는 방법에 대해서는 잘 모릅니다.

하나의 열 5 행과 :

http://www.facebook.com/D2Streetwear/?ref=br_rs 
https://www.facebook.com/RealClothes/?ref=br_rs 
https://www.facebook.com/Lecamelliaclothing/?ref=br_rs 
https://www.facebook.com/TaTclothing-285844471884952/?ref=br_rs 
https://www.facebook.com/Dai-Clothing-130675847640538/?ref=br_rs 

나는 str(link())를 넣어 시도했지만 작동하지 않습니다들 내 CVS는 파일입니다.

+0

'reader'는 목록의 목록을 반환합니다. 0 번째 열에 대해 색인을 생성해야합니다 :'link [0]' –

+0

어떻게 할 수 있습니까? –

+0

당신은 이미 그것을하는 법을 배웠습니다 -'link' 대신'link [0]'을 사용하십시오 – furas

답변

1

csv.reader은 각 행에 대해 반복되는 반복자를 반환하므로 각 행에 대한 열 목록을 반환한다는 점을 이해해야합니다.

csv. reader (csvfile, dialect='excel', **fmtparams)

복귀 주어진 csvfile의 라인을 반복하는 리더 개체. [...] CSV 파일로부터 판독 된 각 행
스트링의리스트로 복귀된다.

대담한 강조 광산. CSV에 하나의 열이 포함되어있어 link[0]을 사용하여 첫 번째 열에 액세스 할 수 있습니다.

with open('test.csv') as f: 
    r = csv.reader(f) 

    for row in r: 
     r = requests.get(row[0]) 
     ... 

나는 파일을 처리 할 때 항상 with...as 컨텍스트 관리자를 사용하는 것이 좋습니다 고려 I/O, 자동으로 파일 및 청소기 코드의 결과를 종료한다.

+0

많은 분들께 감사드립니다! –

관련 문제