Advertisement

python爬取网页信息

阅读量:

PythonSpider项目

Python网络爬虫采用Python编程语言实现其核心功能,并专注于从网络中获取和处理信息。与其它编程语言相比,它以其强大的扩展性和丰富性成为开发网络爬虫的理想选择。该技术能够完成多种任务目标:包括搜索引擎、数据采集、广告过滤等多个方面,并在数据获取方面发挥着重要作用!本次项目所需软件:
PyCharm
下载地址:链接: link

需求分析

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

概要设计

  1. 通过import语句导入相关模块
  2. 定义公共变量url和headers
  3. 通过fetch方法获取网页并返回内容
  4. 利用BeautifulSoup解析网页数据并返回结果
  5. 采用write方法保存网页内容并返回数据

代码实现

一、导入相应模块

复制代码
    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软件,在打开之前已经获取到的CSV文件中,从而获得了所需的数据。

在这里插入图片描述

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

  1. 通过快捷键Ctrl+A复制页面源代码至.txt文件,并在网页中定位所需字段,在此.txt文件中标注其具体位置。
  2. 首先定位关键字段的具体位置;然后查看该字段所在模块内的相关信息与.txt文件中的内容对应性;接着确定每个独立的信息块。
  3. 首先确认各独立的信息块;其次明确需采集的具体数据类型;最后确保数据提取过程具有唯一性和准确性。
  4. 替换各独立段落之间的空白行并整合相关数据。

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

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

在这里插入图片描述

此技术主要应用于静态网页的爬取。针对那些具备较高反爬虫机制的网站而言,在进行数据获取时往往会导致无法完成任务。此技术仅限于学习交流用途。

让我简单介绍一下吧。我是一名13年软件工程专业毕业的应届毕业生,在校期间系统学习过Java编程语言,并积累了丰富的项目经验。毕业后曾在小公司工作过一段时间后,有机会接触到了华为、OPPO等知名科技公司的产品开发环境。后来于2018年加入阿里巴巴工作至今,在这 invalidate years里我深刻体会到了对于大多数初级和中级Java工程师来说,在没有一套完善的自学体系支持的情况下独自提升技术难度颇高且耗时漫长,并常常会遇到技术瓶颈无法突破瓶颈期难以进一步成长等问题。因此我想分享一套完整的《Java开发全套学习资料》希望能帮助那些正处在技术学习初期阶段又缺乏明确方向的朋友走出困境并缩短通往专业技能提升道路的学习曲线同时也能减轻大家因自学效率低下而产生的经济负担只需要轻轻扫一下码关注我的微信公众号就可以获取到这份资料啦

全部评论 (0)

还没有任何评论哟~