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