首页 > 编程语言 >Python爬虫初探

Python爬虫初探

时间:2023-08-17 17:57:59浏览次数:27  
标签:Python 爬虫 re url 模块 初探 requests

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

相关文章

  • python项目 如何快速的导入和导出依赖包
    Python项目依赖包【导出】第一步:安装pipreqs包pip3installpipreqs第二步骤:进入项目的根目录执行以下命令:cd根目录第三步:转成requirements.ext文件:pipreqs./--encoding=utf-8--force如果成功,就会在根目录下生成一个requirements.txt文件,内容为本项目环境以来包已经对......
  • python中3种获取cookie解决方案
    方案一:利用selenium+phantomjs无界面浏览器的形式访问网站,再获取cookie值:fromseleniumimportwebdriverdriver=webdriver.PhantomJS()url="https://et.xiamenair.com/xiamenair/book/findFlights.action?lang=zh&tripType=0&queryFlightInfo=XMN,PEK,2018-01-15"drive......
  • python3添加ssl模块
    1.安装opensslwget https://www.openssl.org/source/openssl-1.1.1v.tar.gztar openssl-1.1.1v.tar.gzcd openssl-1.1.1v./config--prefix=/usr/local/opensslsharedzlib测试/usr/local/openssl/bin/openssl 若报错:/usr/local/openssl/bin/openssl:errorwhileloa......
  • Python实现自定义请求头消息headers
    使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Agent,如果没有对headers进行设置,User-Agent会声明自己是python脚本,而如果网站有反爬虫的想法的话,必然会拒绝这样的连接。而修改headers可以将自己的爬虫脚本伪装成浏览器的正常访问,来......
  • Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
    写在前面Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。本文将详细介绍pynupt模块的使用方法和常见的功能。1.安装pynput模块在开始使用pynupt之前,我们需要......
  • python3 安装clickhouse_sqlalchemy(greenlet) 失败
    环境信息:centos7操作系统,python3.8执行pip3installclickhouse_sqlalchemy或者pip3installgreenlet报以下报错:Command"/opt/python3.6.10-customized/bin/python3.6-u-c"importsetuptools,tokenize;file='/tmp/pip-install-wbyi43ip/greenlet/setup.py';f=g......
  • python中%d、%i、%.nf、%s占位符
     001、%d:整数%i:十进制整数%.nf:浮点数%s:字符串 举例:>>>print("aaaa%dbbbb"%10)##整数aaaa10bbbb>>>print("aaaa%ibbbb"%10)##十进制整数aaaa10bbbb>>>print("aaaa%.2fbbbb"%10)##浮点数......
  • python
    importrandomdefgenerate_random_number(start,end):returnrandom.randint(start,end)示例输入start=1end=100调用函数并打印结果random_number=generate_random_number(start,end)print("生成的随机整数为:",random_number)......
  • python中SeqIO模块处理fasta文件
     001、分别输出染色体ID、序列和序列的长度[root@PC1test02]#lsa.fatest.py[root@PC1test02]#cata.fa##测试数据>seq1AGAAGGGG>seq2AAACCTTTT>seq3AAATTTCCGG[root@PC1test02]#cattest.py##程序#!/usr/bin/envpython#-*-coding:......
  • Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
    写在前面Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。 本文将详细介绍pynupt模块的使用方法和常见的功能。1.安装pynput模块在开始使用pynupt之前,我们......