这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」
还是要坚持嘛,强逼着自己写的文章是很水,但是你也收获了,不是吗
坚持就是胜利,我很感激掘金这个更文活动,真的,要不是有激励,我可能下班连半个小时的书都不会看,强逼着自己写文章,反而保持了看书,敲敲代码的习惯 详细代码ref:code
习惯的养成,打架都说是21天,现在我还差四天就能养成这个好习惯了,先多看多谢,然后再把质量弄上去,感激掘金.
quote
这个方法可以将内容转化为URL编码的格式,当URL中有中文编码的格式时,有可能会有乱码问题,此时用quote这个方法可以将中文字符转化为URL编码:
from urllib.parse import quote
keyword = "我爱你"
url = "https://www.baidu.com/s?wd="+quote(keyword)
print(url)
得到的结果:
https://www.baidu.com/s?wd=%E6%88%91%E7%88%B1%E4%BD%A0
你可能会问,为什么我的参数要这么写,如果你问出来这个问题,那么只能说明你在搜索的时候并没有仔细观察搜索参数的写法,可以先去百度上搜索一下,就可以看到它的构造就是这样子吧构造的.
unquote
有正就有反,
一个是编码那另一个就是得解码
将原来的代码照抄,然后添加这一句:
print(unquote(url))
得到的结果:
分析Roborts协议
Robots协议,也叫做爬虫协议,机器人协议: 用来告诉爬虫那些可以爬,那些不可以爬,它通常是一个叫做robots.txt的文本文件 robots.txt 文本举例:
//我图省事,直接粘贴的掘金的robots.txt文件
User-agent: *
Disallow: /subscribe/subscribed
Disallow: /user/settings
Disallow: /drafts
Disallow: /news-drafts
Disallow: /editor
Disallow: /oauth-result
Disallow: /search
Disallow: /equation
Disallow: /book/order
Disallow: /books/payment
Disallow: /appview
Disallow: /creator
Disallow: /notification
Disallow: /translate
Disallow: /zhuanlan
Sitemap: https://juejin.cn/sitemap/index.xml
可以看到,基本上都是不允许,
robotsparser
在了解了爬虫协议之后,就可以使用robotsparser来解析robots.txt文件了,
直接上例子吧:
from urllib.robotparser import RobotFileParser
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
rp = RobotFileParser()
rp.set_url("https://baidu.com/robots.txt")
rp.read()
print(rp.can_fetch("Baiduspider",'https://baidu.com'))
好的 到此为止,这个urllib这个库的方法,基本上常用的就学完啦,继续努力,持续进步