前言
在日常生活中,我们看到可爱的猫咪表情包,总是会忍不住收藏
认识的一些朋友也养了猫,比如橘猫、英短、加菲猫之类的
看他们发朋友圈撸猫,老羡慕了,猫咪真的太可爱啦。
你是不是也动过养猫猫的小心思呢~反正我是动过了
于是,网上闲逛的时候发现一个专门交易猫猫的网站—猫猫交易网
这不得采集20W+ 条猫猫数据,以此来了解一下可爱的猫咪。
python源码、教程、资料、解答: 点击此处跳转文末名片获取
数据获取
打开猫猫交易网,先采集猫咪品种数据,首页点击猫咪品种
这里打开页面可以看到猫猫品种列表:
但只显示了每种猫猫的品种名,参考价格,我们点进详情页,可以看到更加详细的数据:
品种名、参考价格、中文学名、基本信息、性格特点、生活习性、优缺点、喂养方法等。
检查网页,可以发现网页结构简单,容易解析和提取数据。
代码如下:
import requests
import re
import csv
from lxml import etree
from tqdm import tqdm
from fake_useragent import UserAgent
随机产生请求头
ua = UserAgent(verify_ssl=False, path='fake_useragent.json')
def random_ua(): # 用于随机切换请求头
headers = {
"Accept-Encoding": "gzip",
"Accept-Language": "zh-CN",
"Connection": "keep-alive",
"Host": "www.maomijiaoyi.com",
"User-Agent": ua.random
}
return headers
创建保存数据的csv
def create_csv():
with open('./data/cat_kind.csv', 'w', newline='', encoding='utf-8') as f:
wr = csv.writer(f)
wr.writerow(['品种', '参考价格', '中文学名', '别名', '祖先', '分布区域',
'原产地', '体型', '原始用途', '今日用途', '分组', '身高',
'体重', '寿命', '整体', '毛发', '颜色', '头部', '眼睛',
'耳朵', '鼻子', '尾巴', '胸部', '颈部', '前驱', '后驱',
'基本信息', 'FCI标准', '性格特点', '生活习性', '优点/缺点',
'喂养方法', '鉴别挑选'])
获取HTML网页源代码 返回文本
def scrape_page(url1):
response = requests.get(url1, headers=random_ua())
# print(response.status_code)
response.encoding = 'utf-8'
return response.text
获取每个品种猫咪详情页url
def get_cat_urls(html1):
dom = etree.HTML(html1)
lis = dom.xpath('//div[@class="pinzhong_left"]/a')
cat_urls = []
for li in lis:
cat_url = li.xpath('./@href')[0]
cat_url = 'http://*****' + cat_url
cat_urls.append(cat_url)
return cat_urls
采集每个品种猫咪详情页里的有关信息
def get_info(html2):
# 品种
kind = re.findall('div class="line1">.*?<div class="name">