Python爬虫GET请求基本模型

GET请求URL附带查询参数

分析百度贴吧url特点:

分析url https://tieba.baidu.com/f是贴吧总的url,?后是get请求,kw=xxx,&后是页码信息

 

爬取百度贴吧对应内容信息:

#python3
import urllib
import urllib.request
import urllib.response
import urllib.parse

def tieBarSpider(url,beginPage,endPage):
    """
        作用:负责处理url,分配每个url去发送请求
        url:需要处理的url
        beginPage:爬虫执行的起始页面
        endpage:爬虫执行的截止页面
    :return:
    """
    for page in range(beginPage,endPage):
        pn = (page-1)*50

        fileName = "第" + str(page) + "页"
        fullUrl = url + "&pn=" + str(pn)
        #print(fullUrl)
        html = loadHtmls(fullUrl)
        #将爬到的html页面保存到本地
        writeFiles(html,fileName)
        print("aleady:%s"%fileName)

def loadHtmls(fullUrl):
    """
        作用:根据url发送请求,获取服务器响应
        fullUrl:完整的每页的url
    :return:
    """
    #添加User-Agent头,伪装成浏览器访问
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}

    request = urllib.request.Request(fullUrl,headers=headers)

    reponse = urllib.request.urlopen(request)

    return reponse.read().decode()

#选择将爬取到的页面保存到本地
def writeFiles(html,filename):
    """
        功能:将爬取到的页面保存到本地
        html:页面html源码
        filename:保存到本地的名字
    :return:
    """
    #下面语句相当于
    # f = open(filename,'w')
    # f.write(html)
    # f.close()
    with open(filename,'w') as f:
        f.write(html)

    print('-'*20)

if __name__ == '__main__':

    #初始页url构建
    url = "https://tieba.baidu.com/f?"
    keyword = input("请输入要爬取的贴吧内容:")
    beginPage = int(input("BeginPage:"))
    endPage = int(input("EndPage:"))
    #转码为url编码,urlencode()接受的是一个字典
    kw = urllib.parse.urlencode({"kw":keyword})
    fullUrl = url + kw
    tieBarSpider(fullUrl,beginPage,endPage+1)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值