InvalidSchema没有连接适配器


def get_html(url):
user_agent = {'User-Agent':''}
r = requests.get(url, headers=user_agent)
return r.text

def get_page_data(html):
soup = BeautifulSoup(html, 'lxml')
pass

def main():
with open('p.csv', newline='', encoding='utf-8') as File:  
reader = csv.reader(File)
for url_row in reader:
print(url_row)
url = url_row
get_page_data(get_html(url))

错误:

InvalidSchema
No connection adapters were found for "['https://www.website.com/page1/page2/']"
试着

:

删除行尾的字符。

将类型列表简化为str。

在现实中,我明白错误是什么,请求不能连接到网站,请求的类型必须是一个str,具有一定的外观,但仍然不能自己弄清楚。如何连接到网站请帮忙?

for url_row in reader循环中,url_row是一个字符串列表。这意味着url反过来是一个列表,这就是你传递给requests.get的内容。

如果你知道你正在读取的行将始终只有一个单元格,或者第一个单元格将始终是一个URL,那么你可以用url = url_row[0]代替url = url_row。如果可能存在空行,那么可能需要添加

之类的检查。
if len(url_row) == 0:
continue

或者,如果文件只是一个url列表,而不是一个真正的CSV文件,那么你可以直接读取它们:

with open('p.csv', newline='', encoding='utf-8') as File:  
for line in File:
url = line.strip()
get_page_data(get_html(url))

最新更新