Advertisement

python爬取网页信息

阅读量:

PythonSpider项目

基于Python编程语言构建的网络爬虫系统主要用于网络数据采集与处理过程。相较于其他编程语言, Python这门编程语言特别适合用于开发此类网络爬虫系统,因为它拥有丰富的内置模块,较为容易实现相关的功能配置与扩展操作。该系统能够执行多种任务,例如搜索引擎优化、数据采集管理以及广告效果监测等功能,在数据抓取方面具有显著优势!此次项目所需的开发工具为

需求分析

在大数据时代,怎样通过爬虫快速并且有效的获取到某一个网页的信息。

概要设计

  1. 通过调用库函数引入所需的模块。
  2. 定义公共变量存储 URLs 和 HTTP 头部信息。
  3. 通过 HTTP 请求获取网页内容,并解析返回的数据。
  4. 利用 HTML 解析器提取关键信息,并传递给后续处理模块。
  5. 将网页内容持久化存储后,在系统中进行进一步的处理与分析。

代码实现

一、导入相应模块

复制代码
    import requests
    import re
    import csv
    import time
    import random

二、获取网页信息,并解析

复制代码
    class DongManSpider:
    #公共变量
    def __init__(self):
        self.url = " "   #需要给出相应路径的网页
        self.headers = {"User-Agent":"  "}#需要获取目标地址中的User-Agent,有时候还需要加上Cookie。
    #获取页面
    def get_html(self,url):
        #每生成一个网页,获取该网页的代码
        html = requests.get(url, headers=self.headers).text
        #返回参数
        return html
    #解析页面
    def parse_html(self,html):
        #编写正则表达式
        regex = ''' ''' #正则表达式里放你需要爬取的信息
        #构建正则对象
        p = re.compile(regex, re.S)
        #匹配
        info = p.findall(html)
        #返回参数
        return info

三、保存输出

复制代码
    #保存页面
    def save_html(self,info):
        # 循环遍历出里面的元组
        for i in info:
            #构建一个空列表
            L = []
            #将数据清洗过后放入列表,再用strip()去掉多余的空格和换行
            name= i[0].strip()
            address= i[1].strip()
            time= i[2].strip()
            L.append(name)
            L.append(address)
            L.append(time)
            #每遍历一个元组,就保存追加至domgman.csv文件中
            f = open("dongman.csv", "a", encoding="utf-8-sig", newline="")
            #将open对象构建成csv对象
            w = csv.writer(f)
            #将遍历的元组放进文件中
            w.writerow(L)

通过我的Excel程序,在打开之前已经成功获取到了我们想要的信息。

在这里插入图片描述

如何正确的书写正则表达式

  1. 使用快捷键Ctrl+A提取页面源码到本地TXT文件,并通过网页导航找到目标字段后,在TXT文件中定位这些字段的位置。
  2. 在网页上查看目标字段的位置后进行分析:首先查看同一模块的数据情况;随后定位目标数据的具体位置;接着检查要抓取的第一个数据项和最后一个数据项各自的起始字符是否能作为每个段落的唯一标识符。
  3. 确定目标数据段落并保存下来:明确需要获取的信息内容;然后确保该段落中的起始字符是该段落内唯一的标识符。
  4. 使用._?来替代不同段落之间的空白区域,并将需要抓取的内容用(. _?)的形式进行处理。

如何正确找到网页的User-Agent

1、找到并Copy它的值进去就可以了

在这里插入图片描述

此技术主要用于静态网页的数据采集, 当遇到配备高级防采集机制的网站时, 将无法获取有效数据. 该技术仅作为学习交流工具使用

全部评论 (0)

还没有任何评论哟~