title: Python爬虫初探
date: 2023-08-01 16:16:51
categories: CTF-Web入门
description: 爬取吉大贴吧前十页帖子标题
终于到了基础知识的最后一节,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() # 用完爬虫要关闭
基础知识部分结束啦,八月开始研究真正的漏洞了
标签:Python,爬虫,re,url,模块,初探,requests From: https://www.cnblogs.com/yoo2i/p/17638337.html