Datawhale爬虫-Task2

本文记录了Datawhale爬虫学习的第二部分,包括嵩天教授讲解的正则表达式基础,以及三个实战任务:1) 淘宝商品比价爬虫,通过获取cookie进行登录并抓取商品名和价格;2) 中国大学排名爬取,提取排名、学校名称和总分;3) 爬取丁香园论坛的用户名和回复内容,利用Xpath解析HTML。
摘要由CSDN通过智能技术生成

接上:Datawhale爬虫-Task1

学习笔记

1.嵩天教授爬虫课第三章

B站链接MOOC链接
第三章的内容是re(regular expression,正则表达式)
re是python自带的标准库无需安装,通过简洁的方式刻画字符串的特征。
re通常使用raw string,避免大量转义字符的使用。

常用操作符:
在这里插入图片描述
在这里插入图片描述
经典正则表达式实例:
在这里插入图片描述
在这里插入图片描述
主要方法:
在这里插入图片描述
控制标记:
在这里插入图片描述
编译:
在这里插入图片描述
Match对象:
在这里插入图片描述
在这里插入图片描述
最小匹配:
re默认为贪婪匹配,即有多个匹配时返回最长的匹配,当需要返回最短匹配时,需要用最小匹配。
在这里插入图片描述

2.Datawhale三个实战任务

2.1.淘宝商品比价定向爬虫

  • 爬取网址:https://s.taobao.com/search?q=书包&js=1&stats_click=search_radio_all%25
  • 爬取思路:
    1. 提交商品搜索请求,循环获取页面
    2. 对于每个页面,提取商品名称和价格信息
    3. 将信息输出到屏幕上

注意:cookie是有时效性的,需要先打开网址(需要登陆淘宝账号),然后在下图位置找到cookie。
在这里插入图片描述

# 导入包
import requests
import re

# 提交商品搜索请求,循环获取页面
def getHTMLText(url):
    """
    请求获取html,(字符串)
    :param url: 爬取网址
    :return: 字符串
    """
    try:
        # 添加头信息,
        kv = {
   
            'cookie': 'cna=fEfdFRKIuH8CAWdmLMNW9fP/; t=06c1d4a95d61fdcdef2c8b5e9eae79bb; thw=cn; hng=TW%7Czh-TW%7CTWD%7C158; miid=662854181659420300; _samesite_flag_=true; cookie2=14ad127d55c447afd9cdb865fec3e9db; _tb_token_=fefd535ee3308; sgcookie=EZ121BoL2kOgGgj1sBgB4; unb=2617385050; uc3=vt3=F8dBxGR1S2QYJlph3dQ%3D&nk2=GcBicUe%2B4P0%3D&lg2=WqG3DMC9VAQiUQ%3D%3D&id2=UU6gZjn2erOwMA%3D%3D; csg=e031fa2e; lgc=zh2zh2zh; cookie17=UU6gZjn2erOwMA%3D%3D; dnk=zh2zh2zh; skt=38e3a7b39d12066d; existShop=MTU4NzYzNjkzNw%3D%3D; uc4=id4=0%40U2xt%2Fi2hmQlTJLDDNSO3l5Z48c4B&nk4=0%40GwkTUEseG%2FUrwFSngC6D01rU8Q%3D%3D; tracknick=zh2zh2zh; _cc_=W5iHLLyFfA%3D%3D; _l_g_=Ug%3D%3D; sg=h01; _nk_=zh2zh2zh; cookie1=B0Spc9p07epJ6kfY0jbAtWOan2Lw0Uf2AuKo1h4ZtBU%3D; enc=jm%2FeH%2Br4%2FzP0R8WyRaP56eHn56%2BtOuOWnPAFuT%2BZIkNbNWL6r6hgZFhZTOD9rQGnoD3L3PaodVWGObdRCew5FQ%3D%3D; JSESSIONID=5F00082365D6A6CEB9CEA338FB7C7263; tfstk=cWUCBdVLipvQtW4e781ZYs9lkigdaLXj_EMgOle2FIBMoQPsBsAvuxGwtfv9Wmh1.; mt=ci=2_1; v=0; l=eBOfwFsgq3x_4R7yBOfZEurza7yFjIRAguPzaNbMiT5P_Jfp57XlWZjX_N89CnNVh64wR3yAaP02BeYBq1x0JeHw2j-la1Mmn; isg=BB4ep9JIzOjPJBuV4dTZxkH0b7Rg3-JZWXXOHMinhWFc677FMGygaFrB57fBU9px; uc1=cookie16=V32FPkk%2FxXMk5UvIbNtImtMfJQ%3D%3D&cookie21=URm48syIYB3rzvI4Dim4&cookie15=WqG3DMC9VAQiUQ%3D%3D&existShop=false&pas=0&cookie14=UoTUPcqfG7PGhA%3D%3D'
        }
        r = requests.get(url, timeout=30, headers=kv)
        # r = requests.get(url, timeout=30)
        # print(r.status_code)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值