weixin_42670502
腾v
2021-01-24 11:22

python3爬虫no host given错误

  • python
# -*- codeing = utf-8 -*-
# @Time : 2021/1/22 13:08
# @Author : 贾维斯
# @File : spider.py
# @software : PyCharm

from bs4 import BeautifulSoup                              #网页解析,获取数据
import re                               #正则表达式,进行文字匹配
import urllib.request,urllib.error      #指定URL,获取网页数据
import xlwt                             #进行excel操作
import sqlite3                          #进行SQlite数据库操作

def main():
    baseurl = "https: //movie.douban.com/top250?start="
    #1.爬取网页
    datalist = getDate(baseurl)
    savepath = ".\\豆瓣电影TOP250.xls"            #或者 r“.\”
    #3.保存数据
    # saveData(savepath)

    askURL("https: //movie.douban.com/top250?start=0")



#爬取网页
def getDate(baseurl):
    datalist = []
    # 2.逐一解析数据
    return datalist

def askURL(url):
    # 模拟浏览器头部信息,向豆瓣服务器发送消息
    # 用户代理,告诉豆瓣服务器,我们是什么类型的机器,浏览器(本质上是告诉浏览器,我们可以接受什么水平的文件内容)
    head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"}
    # head["U"]     #多个用数组
    request = urllib.request.Request(url=url,headers=head)
    html = ""
    try:
        response = urllib.request.urlopen(request)
        html = response.read().decode("utf-8")
        print(html)
    except urllib.error.URLError as e:
        if hasattr(e,"code"):       #判断e这个对象里是否包含code这个属性
            print(e.code)
            print("code")
        if hasattr(e,"reason"):
            print(e.reason)
            print("reason")

    #return html








#保存数据
def saveData(savepath):
    print("save...")




if __name__ == "__main__":          #当程序执行时
    #调用函数
    main()



出现结果:

这个怎么回事呀

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答