鱼C论坛

 找回密码
 立即注册
查看: 1426|回复: 1

[技术交流] python爬虫——我的第二个爬虫程序——百度

[复制链接]
发表于 2021-10-23 18:33:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 非凡 于 2021-10-23 23:31 编辑

此处补充个知识点:
        1、访问浏览器是通过:请求(向浏览器发送请求包)——响应(得到浏览器响应的方式来获取网站资源的)。
        2、客户端和网站服务器之间进行 请求——响应,最常用的两种方式是GET:从服务器请求获得数据,POST:向指定服务器提交被处理数据
        3、静态网页中,get请求常在url中表现。动态网页中:post请求,在urllib库中是通过 urlopen() data 参数赋值,提出请求。
        4、urlopen() data 参数默认值是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。

之前程序“猫片”,现在的“百度”,都是get请求。
  1. from urllib import request
  2. from urllib import parse


  3. def get_url(word):
  4.     #在向网页发送get请求时,会发现url会跟随你请求而变化,这变化时有规律的。url的变化部分一般是在接在s?后头
  5.     #关于url变化后续爬虫中经常需要用的,比如页码的变化、二级、三级链接的变化。
  6.     #仔细观察百度在搜索时的url,搜索的内容会在wd=后,
  7.     url = 'http://www.baidu.com/s?wd='
  8.     #将要搜索内容接入到url中,形成新的url
  9.     params = parse.quote(word)
  10.     full_url = url + params
  11.     return full_url

  12. def request_url(url,filename):
  13.     headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52'}
  14.     # 1、包装ua信息
  15.     req = request.Request(url=url,headers=headers)
  16.     # 2、构建get请求对象
  17.     res = request.urlopen(req)
  18.     # 3、解析浏览器响应内容
  19.     html = res.read().decode('utf-8')
  20.     # 4、保存爬取的网页源码
  21.     filename = word + '.html'
  22.     with open(filename,'w',encoding='utf-8') as f:
  23.         f.write(html)

  24. if __name__=='__main__':
  25.     word = input('请求输入搜索内容:')
  26.     url =get_url(word)
  27.     filename = word + '.html'
  28.     request_url(url,filename)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-24 16:13:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 02:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表