2017-12-22 20 views
0

私は初心者ですので、皆さんが知っていることを教えてください。 私はマーケティング目的のスクレイピングツールをスクレイプしていますウェブサイトからの情報を連絡し、私はこれが私のコードではPython 3 を使用しています:。、'%s'の接続アダプタが見つかりませんでした。 "%url

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()だけの文字列を取得していることを知っている:

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() 

が、それはこのように私の目を取得する理由はわかりませんこれらのリンクを文字列に変換する方法は知られていません。

1列のみ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())を入れてみましたが、それは動作しませんsが私のCVSはファイルです。

+0

'reader'はリストのリストを返します。第0列のインデックスを作成する必要があります: 'link [0]' –

+0

あなたは私にそれを行う方法を教えてくれますか? –

+0

あなたはすでにそれをやる方法があります - 'link'の代わりに' link [0] 'を使用してください – furas

答えて

1

csv.readerは、各行に対して繰り返しを実行し、それぞれの列の一覧を返すイテレータを返すことを理解する必要があります。

csvです。 readercsvfile, dialect='excel', **fmtparams

戻り所与 csvfile内の行を反復処理するようなreaderオブジェクトは、[...] CSVファイルから読み取る各行
は、文字列のリストとして返されます。

太字強調。 CSVには1つの列が含まれているように見えるので、最初の列にはlink[0]を使用してアクセスできます。

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

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

私はそれのファイルI/Oを処理するとき、それは自動的にクリーンなコードでファイルと結果を閉じて、常に、with...asコンテキストマネージャを使用することをお勧め考えます。

+0

おかげでたくさんの人! –

関連する問題