# -*- 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()
出现结果:
这个怎么回事呀
我又把这个代码复制回去 试了下 问题在于你说的那个链接那块 https://后面多了个空格 感谢
http://哪里使用了中文,第二十一行
http://哪里使用了中文,第二十一行,而且你这个链接打不开啊,首先要保证能打开这个链接,使用ping命令试一下能不能ping通,不能的话,说明这个链接有问题
打开cmd 输入ping www.xxx.com(你的url)
首先 感谢你朋友 我链接没问题,我不知道弄了个啥,好像啥都没改 然后又自己好了 太迷了 ,你愿意回答我 我非常感谢(๑•̀ㅂ•́)و✧