python爬虫学习(一)及翻车过程

疫情期间在家没事开始学python爬虫,本文记录我的第一个爬虫

一、爬百度首页

在这里我用了两种库来爬,一种是urllib.request,另一种是requests库,这里我推荐大家使用requests库,因为使用urllib爬取的百度首页代码和浏览器里看到的不太一样

接下来上代码

1.使用urllib

# 导入urllib库的urlopen的函数
from urllib.request import urlopen
# 发出请求,获取html
html = urlopen("https://www.baidu.com/")
# 获取的html内容是字节,将其转化成字符串
html_text = bytes.decode(html.read())
# 打印html的内容
print(html_text)

2.使用requests

import requests
head = {
    "User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebLit/537.36(KHTML,like Gecko) Chrome/65.0.3325.181 Safari/537.36"}
s = requests.get("http://www.baidu.com", headers=head)
print(s.text)

二、解析html

上一步我们已经获取了百度首页的html代码,接下来我们解析html获取百度的标题

我们先从浏览器看百度的源码找到百度的标题

从下图百度源码的截图中我们可以看到百度的标题在html下的<head>中的<title>里,就是图片中红框位置

学过html的同志们都知道html是一层层的嵌套的所以我们想找到“百度一下,你就知道”应该先找到“title”标签,而"title"标签在“head”标签内,所以我们要先找到“head”标签

代码如下:

import requests
#导入BeautifulSoup 用来解析html
from bs4 import BeautifulSoup as bf
head = {
    "User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebLit/537.36(KHTML,like Gecko) Chrome/65.0.3325.181 Safari/537.36"}
s = requests.get("http://www.baidu.com", headers=head)
#print(s.text)
# 解析html
obj = bf(s.content, 'html.parser')
#获取head标签下的title标签
title = obj.head.title
print(title)

大家只需要注意关于解析html的部分就好了

接下来是运行结果

成功了,鼓掌·······谢谢大家

三、注意点和过程中的报错

在运行的时候大家可能会遇到“No module named 'requests'”这个错误,代表你没有安装“requests”模块,当然你解析html使用的bs4也有可能没有安装,这时候我们怎么办呢?安装就可以了 在命令行输入“pip install requests” 就可以安装“requests”模块了,bs4模块的安装也是一样的在命令行输入“pip install bs4” 即可

安装requests时我又遇到了一个安装模块超时的错误,报“raise ReadTimeoutErrorself._pool, None, 'Read timed out.'”这是怎么办呢?狂百度 找到一篇文章延时处理解决了代码如下

pip --default-timeout=100 install requests

我是安装requests出现的问题,大家如果是安装其他库出现这个问题只需要修改 install后面的第三方库名就可以了

这里我附上帮我解决问题的大神的博客,他写了三种方式:https://blog.csdn.net/weixin_42462804/article/details/104713714

(不知道会不会侵权,侵权的话请联系我删掉,谢谢)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值