对于爬虫的认知与实践操作

爬虫技术,又被称为网页蜘蛛,以我个人理解,觉得通俗来讲,爬虫就是抓取网页数据的程序。爬虫的作用实际就是模仿人的行为,在网页上进行一系列的操作,最终实现数据的请求,包括数据的处理以及对数据的存储。
首先我们来分析网页的三大特征:
1、网页都有自己唯一的URL
2、网页都是HTML来描述页面信息
3、网页都使用Http/Https协议来传输Html数据
写爬虫代码之前我们需要首先明白爬虫的设计思路:
1、确定要抓取的网站数据
2、分析整个网站数据的结构
2.1.1 ——确定网站的url格式
2.1.2 ——确定网页的数据格式
2.1.3 ——确定网页的编码格式
2.1.4 ——确定网页对外的请求方式
3、编写代码
3.2.1 ——请求网络,获取服务器响应后的数据
3.2.2 ——分析数据结构,通过解析的方式,过滤出我们需要的数据
3.3.1 ——本地保存
3.3.2 ——数据库保存
4.将数据进行展示:
4.1.1 —— 数据分析
1、过滤重复数据
2、过滤无用数据
3、规格化处理
4.1.2 —— 数据可视化
1、将数据—图形呈现
那么我们下面需要了解一下简单的爬虫架构:
1、URL管理器
2、网页下载器
3、网页解析器
4、输出管理器
其中网页下载器和网页解析器是我们爬虫的核心部分,那么python中的解析方式目前暂时有6种:1、直接处理,2、Json解析,3、正则表达式,4、Beautifulsoup,5、PyQuery,6、xpath当然最重要的就是我们对于爬虫的实践,下面是我用来爬取赶集网上二手车的信息代码,分享给大家,当然,初学的我代码还是不够优化,写的比较复杂,恳请大家能够指引我完成对以下代码的优化处理,我先在此谢过大家!

#coding:utf-8
‘’’
爬取赶集网榆林买二手车网页信息
‘’’

引入库

import requests
from lxml import etree
import csv
import time
import random
#定义抓取函数
def spider():
headers = {‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36’}
prefix_url = ‘http://sxyulin.ganji.com/ershouche/o
for i in range(1,3):
# 拼出完整的url
url = prefix_url+str(i)
#抓取页面
html = requests.get(url,headers = headers)
# print(html.text)
# 获取selector
selector = etree.HTML(html.text)
# 抓取车源列表
car_list = selector.xpath(’//*[@id=“puid-”]’)
# print(car_list)
for car in car_list:
car_name = car.xpath(‘dt/div[2]/div/a/text()’)[0]
car_age = car.xpath(‘dt/div[2]/p[1]/span[1]/strong/text()’)[0]+‘年’
car_road = car.xpath(‘dt/div[2]/p[1]/span[2]/strong/text()’)[0]+‘万公里’
car_business = car.xpath(‘dt/div[2]/p[2]/em[2]/text()’)[0]
price = car.xpath(‘dt/div[2]/p[1]/span[3]/i[1]/text()’)[0]+‘万’
print(car_name,car_age,car_business,price,car_road)
# 保存数据
item = [car_name,car_age,car_business,price,car_road]
data_write(item)
# 休息2-3秒
time.sleep(random.randint(2,3))

定义保存函数

def data_write(item):
with open(‘secondcar.csv’,‘a’,encoding=‘utf-8’,newline=’’)as file:
writer = csv.writer(file)
writer.writerow(item)
#定义一个主函数
if name == ‘main’:
spider()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值