百度网页关键字抓取(Python爬虫下载器.request.urlopen(url))

优采云 发布时间: 2021-09-09 20:06

  百度网页关键字抓取(Python爬虫下载器.request.urlopen(url))

  [直奔主题]

  最近整理了一下之前做过的项目,学到了很多东西,乱七八糟的。打算写一些关于Python爬虫的东西,新人,希望大佬们多多关照,别敲我歪了。

  前面先磨一些基础的东西,对新爬虫更友好一些,总代码在最后,直接Ctrl+C就行了。

  工具:

  我们需要两个工具,这两件事:PyCharm 和 Google 浏览器

  

  

  PyCharm

  谷歌浏览器

  我使用的版本是 PyCharm 5.0.3 和 Python 3.6.6

  教学开始!

  第一步,打开PyCharm

  第二步,打开谷歌浏览器

  第三步,开始分析

  ...

  百度搜索关键词后抓取页面源码分五步:

  1、获取你想抓取的信息

  2、如果要获取的信息是中文的,需要进行url编码

  3、拼接页面的真实url(url指的是url,后面会直接写url)

  4、通过下载模块抓取网页信息

  5、将获取的网页源代码保存为html文件并保存在本地

  一、Python 爬虫下载器

  分为urllib.request和request两种类型

  urllib.request-python2版本的升级版

  requests-python3 中的新版本

  

  这里可以直接用import语句导入,简单方便,省事

  二、use urllib.request

  谈谈一些比较常用的小工具:

  1)urllib.request.urlopen(url):向网页发起请求并得到响应

  示例代码:

  

  2)urllib.request.Request(url,headers) 创建请求对象

  示例代码:

  

  三、理智分析

  我们试着用百度搜索一下,比如:

  

  

  让我们复制它,你会看到它

  哔哩哔哩:

  %25E7%25AF%25AE%25E7%2590%2583&rsv_pq = 83f19419001be70a&rsv_t = 4115%2F8nYNTS0ycM92Jyo7EyG93G5SsWNuSPyrV5xFkZ2RPcEpqYZWJVokzM&rqlang = CN&rsv_enter = 1&rsv_dl = TB&rsv_sug3 = 11&rsv_sug1 = 8&rsv_sug7 = 100& rsv_sug2 = 0 & inputT = 7505 & rsv_sug4 = 7789

  B站:

  %E7%AB%99&OQ = Bilibili&rsv_pq = a2665be400255edc&rsv_t = 5c8aBmClupFcVXiNpBa79qMXk3UM6qIj614z6VmEmtJHhkeIvp7hddX9oio&rqlang = CN&rsv_enter = 1&rsv_dl = TB&inputT = 7100&rsv_sug3 = 22&rsv_sug1 = 17&rsv_sug7 = 100& rsv_sug2 = 0 & rsv_sug4 = 7455

  让我们仔细看看...

  

  

  这只特别的猫有什么意义?

  

  和

  

  是的,它对‘Station’这个词进行了url编码,很容易处理

  四、url 编码模块 urllib.parse

  我们用这个东西来杀死它。说一下常用的东西

  1)urllib.parse.urlencode() 网址编码

  示例代码:

  运行结果:

  

  2)urllib.parse.quote(string) URL 编码

  示例代码:

  

  运行结果:

  

  3)urllib.parse.unquote(url encoding)反向编码url编码

  示例代码:

  

  运行结果:

  

  五、最后一步

  看到这里,相信大部分人都明白了,问题就解决了。我们要搜索“B站”,无非就是站。同样,它是 %E7%AB%99

  百度搜索关键词后获取页面源码程序代码:

  import urllib.request

import urllib.parse

key=input("请输入您要查询的内容:") # 获取想要搜索的信息

key={"wd":key}

data=urllib.parse.urlencode(key) # 对关键字进行url编码

base_url="https://www.baidu.com/s?" #搜索网页的默认url

url=base_url+data #拼接得到真实的url

headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"}

req=urllib.request.Request(url,headers=headers) #创建请求对象

res=urllib.request.urlopen(req) #对网页发起请求并获取响应

html=res.read().decode("utf-8")

with open("百度.html","w",encoding="utf-8") as f:

f.write(html)

  总结:

  我们将这个项目分为五个步骤:

  一、获取你想抓取的信息

  key=input("请输入您要查询的内容:")

  二、如果要获取的信息是中文的,需要进行url编码

  key={"wd":key}

data=urllib.parse.urlencode(key)

  三、拼接页面的真实url

  base_url="https://www.baidu.com/s?" #搜索网页的默认url

url=base_url+data #拼接得到真实的url

  四、通过下载模块抓取网页信息

  headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"}

req=urllib.request.Request(url,headers=headers) #创建请求对象

res=urllib.request.urlopen(req) #对网页发起请求并获取响应

  五、将获取的网页源代码保存为html文件并保存在本地

  html=res.read().decode("utf-8")

with open("百度.html","w",encoding="utf-8") as f:

f.write(html)

  新人报到,互相咨询,玩得开心,精彩不断

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线