Python 《从零开始学习网络爬虫》——第05课,封装函数

一、为什么使用函数:

        python爬虫中使用函数是为了提高编写代码的效率,把具有特定功能的相关代码组成一个小模块。

        使用实例例如:1.获取一级页面中标签里面中url、请求参数信息 

                                 2.获取页面中想要爬取的内容信息

        相关搭配: 1.获取参数函数与获取内容函数进行嵌套

                        2.获取多页网页信息进行递归调用        

                        3.多线程爬取时,封装函数是必要的

                           


 二、函数定义:

格式:  def 函数名 (参数1,参数2,参数....):

                函数体

               (return 返回值)


#无参构建——没有返回值
def sayHello():
    print('hello word')

#无参构建——又返回值
def returnNumber():
    return 1

#有参构建——无返回值
def sayName(name):
    print('hello',name,sep='|')

#有参构建——有返回值
def mergeStr(str1,str2):
    return str1+str2

if __name__=='__main__':
    print('第一个函数:',end=' ')
    sayHello()
    print('第二个函数:',returnNumber())
    print('第三个函数:',end=' ')
    sayName('小明')
    print('第四个函数:',mergeStr('摸金','校尉'))
    

三、函数实例:

(一)获取网页相关内容函数

#封装思路
#爬虫里面封装函数,提供相关思路,此代码里面有爬取的瑕疵
#1.首先导入模块
#2.定义函数声明
#3.if __name__=='__main__':相当于主函数使用

from bs4 import BeautifulSoup
import requests
import time


def getData(your_url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36',
        'Host': 'www.222biquge.com',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Cookie': 'ckAC=1; Hm_lvt_e1880e6cb1c4b425fe63ef614765e9ec=1694943134,1695103196; width=85%25; Hm_lpvt_e1880e6cb1c4b425fe63ef614765e9ec=1695104708; __gads=ID=fdfbb2c2fc6d8266-222da8e5e3e3009f:T=1695104707:RT=1695104707:S=ALNI_MbBKmyOiE0rr-z9yI5R0SE_YUe2pQ; __gpi=UID=00000c4b8769dfe5:T=1695104707:RT=1695104707:S=ALNI_Makuto0k-PH61jsK4RcY1DN83cXng',
    }

    response=requests.get(url=your_url,headers=headers)
    soup = BeautifulSoup(response.text, 'lxml')
    titles = soup.select('.bookname>h1')
    # print(titles[0])____________________ <h1> 第一章?旧土</h1>
    tuijians = soup.select('.bookname>.lm>a')
    print(tuijians)


#主函数里面简洁明了
if __name__=='__main__':
    urls=[f'http://www.222biquge.com/148_148106/17812{page}.html'for page in range(1,1000)]

    for single_url in urls:
        
        #调用函数
        getData(single_url)



(二)后续讲解嵌套函数和递归函数

四、补充知识点:

获取网页相关标签:

1.Beautiful库及方法

2.parsal库及方法

 (一)Beautiful实例:

官方文档:Beautiful Soup 4.4.0 文档 — Beautiful Soup 4.2.0 中文 文档

 

from bs4 import BeautifulSoup
import requests

#获取到title列表
response=requests.get(url=your_url,headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
titles = soup.select('.bookname>h1')

(二)Parsel实例:

官方文档:parsel.selector — Scrapy 2.5.0 文档

 

import requests
import parsel

#使用parsel进行css语法提取titles列表

selector=parsel.Selector(response.text)
titles=selector.css('.bookname>li')
print(titles)

        本次讲解了函数相关知识和补充的beautiful、parsel库知识,后续发布的代码主要偏向于这两种方法进行内容爬取,各位爬虫爱好者们,咋们还是得冲冲冲!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烧酒调调

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值