Python爬虫初探

终于到了基础知识的最后一节,python写爬虫程序。

Python写简单爬虫主要是两个模块,requests和re,下面分别介绍一下这两个模块。

requests模块初探

请求模块,用来模仿http请求,常常使用requests.get(url,headers=,datas=)来模仿get请求,还有相似的post函数。

其中url是我们要爬的url;headers是请求头,常常需要添加UA(User-Agent)参数(http请求是什么浏览器发出的)来掩盖我们爬虫的本质,防止反爬机制。

在获得了结果文本流之后,我们就需要使用re模块来过滤那些又臭又长的HTML代码,获得我们真正想要的东西。

re模块

正则模块,使用正则表达式帮助我们过滤文本流获得想要的数据,最常用的是惰性匹配.*?和命名功能(?P<name>.*?),主要还是正则表达式的运用

直接看代码咯

import requests
import re

txt = open('吉林大学学生都在想什么.log',mode='w',encoding='utf-8')
page =0
for num in range(1,10):
    url = f"https://tieba.baidu.com/f?kw=吉林大学&ie=utf-8&pn={page}"# 使用f和{}来为字符串中添加变量的值
    page += 50
    dic = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188"
    }
    response = requests.get(url,headers=dic)
    content = response.text

    obj = re.compile(r'<a rel="noopener" href="/p/.*?title=".*?" target="_blank" class="j_th_tit ">(?P<title>.*?)</a>',re.S)
    result = obj.finditer(content)

    for i in result:
        print(i.group("title"),file=txt)

txt.close()# 用完文件要关闭
response.close() # 用完爬虫要关闭

基础知识部分结束啦,八月开始研究真正的漏洞了

posted @ 2023-08-17 17:42  yoo2i  阅读(30)  评论(0)    收藏  举报