PythonSpider项目
Python爬虫是用Python编程语言实现的网络爬虫,主要用于网络数据的抓取和处理,相比于其他语言,Python是一门非常适合开发网络爬虫的编程语言,大量内置包,可以轻松实现网络爬虫功能。Python爬虫可以做的事情很多,如搜索引擎、采集数据、广告过滤等,Python爬虫还可以用于数据分析,在数据的抓取方面可以作用巨大!此次项目我们所需软件:
PyCharm
下载地址:链接: link.
需求分析
在大数据时代,怎样通过爬虫快速并且有效的获取到某一个网页的信息。
概要设计
1.用import导入相关的包
2.设置公共变量url和headers
3.获取页面并返回参数
4.解析页面并返回参数
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打开之前获取到的CSV文件,我们就得到了我们想要的信息。
如何正确的书写正则表达式
1、ctrl + A 复制页面源码,到txt文本,在网页中找到关键字段,并在txt文本中查找其位置
2、在网页中找到关键字段的位置,观察其同一模块的信息,与txt文本相对应,然后定位。然后观察要爬取的第一个信息的开头,和要爬取最后一个信息的开头,是否是每个信息段的唯一标志
3、确定信息段后,单独保存。确定要爬取的信息,然后再判断定位该信息的开头是否是信息段内的唯一字符。保留确定每一个关键信息的开头,以及最近的结尾字段
4、用.?代替每一段结尾至下一段开头的内容。把要爬取的内容,用(.?)代替
如何正确找到网页的User-Agent
1、找到并Copy它的值进去就可以了
此技术大多用于静态网页的爬取,对于拥有较高反爬机制的网站会出现数据获取不了的状况。只用做学习交流。