【问题标题】:MissingSchema: Invalid URL 'h': No schema supplied. Perhaps you meant http://h? [closed]MissingSchema:无效的 URL 'h':未提供架构。也许你的意思是 http://h? [关闭]
【发布时间】:2021-08-29 03:47:03
【问题描述】:

我一直在尝试从 google 中抓取不同公司名称的地址和电话号码,当我提供 URL 时,我的代码可以正常工作,它会获取所需的信息。但是当我尝试循环时,我得到了以下错误。

 MissingSchema: Invalid URL 'h': No schema supplied. Perhaps you meant http://h?

但相同的 URL 可以正常工作,如下所示!

url = 'https://www.google.com/search?q=goinggourmet'
response = requests.get(url, {"User-Agent": ua.random})
print(Address)

这是在循环时引发错误的代码

bus_name = ['go', 'Copper']
for names in bus:
    html= urllib.parse.quote_plus(names)
    for url in google_urls:
        response = requests.get(url, {"User-Agent": ua.random})

【问题讨论】:

  • for url in google_urls -- google_urls 是一个字符串。将其视为一个序列,一次获得该字符串的一个字符。

标签: python python-3.x web-scraping python-requests web-scraping-language


【解决方案1】:

因为您在迭代之前将 google_urls 创建为字符串,所以 for 循环会迭代其中的字符

>>> for char in "http":
...   print(char)
...
h
t
t
p

【讨论】:

  • 你认为我可以如何调整它,所以第一个循环显然会返回字符串。那么如何遍历每个链接呢?
  • 我认为不需要迭代两次!只需遍历名称,用它们创建 url 就可以了
猜你喜欢
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 2019-10-30
  • 2018-06-02
  • 2010-09-22
  • 2022-01-23
  • 1970-01-01
  • 2015-01-14
相关资源
最近更新 更多