首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >没有找到“%s”% url的连接适配器

没有找到“%s”% url的连接适配器
EN

Stack Overflow用户
提问于 2017-12-22 05:25:02
回答 1查看 3.6K关注 0票数 1

很抱歉问这个!我是新手,所以随便教我你们知道的。我正在做一个刮刮工具,我的营销目的,以刮从网站的联系信息。我正在使用Python 3--这是我的代码:

代码语言:javascript
代码运行次数:0
运行
复制
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()

不知道为什么我会这样:

代码语言:javascript
代码运行次数:0
运行
复制
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()只获取字符串,但不知道如何将这些链接转换为字符串。这是我的cvs文件:

只有一列有5行:

代码语言:javascript
代码运行次数:0
运行
复制
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())放上去,但是它不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-22 05:32:17

您应该理解,csv.reader返回一个迭代器,该迭代器在每一行上迭代以返回每个行的列列表。

csv.reader(csvfile, dialect='excel', **fmtparams) 返回一个读取器对象,该对象将遍历给定csvfile中的行. 从csv文件读取的每一行都作为字符串列表返回.

大胆强调我的。您的CSV似乎包含一个列,因此可以使用link[0]访问第一个列。

代码语言:javascript
代码运行次数:0
运行
复制
with open('test.csv') as f:
    r = csv.reader(f)

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

我认为在处理文件I/O时始终使用with...as上下文管理器是很好的做法,因为它会自动关闭文件并生成更干净的代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47936244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档