鱼C论坛

 找回密码
 立即注册
查看: 1693|回复: 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请求。
from urllib import request
from urllib import parse


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

def request_url(url,filename):
    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'}
    # 1、包装ua信息
    req = request.Request(url=url,headers=headers)
    # 2、构建get请求对象
    res = request.urlopen(req)
    # 3、解析浏览器响应内容
    html = res.read().decode('utf-8')
    # 4、保存爬取的网页源码
    filename = word + '.html'
    with open(filename,'w',encoding='utf-8') as f:
        f.write(html)

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 23:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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