小程序云开发教程二:数据的获取(爬虫)

数据从哪儿来呢?这是个很好解决的问题,我们只需要参考一下网上的爬虫代码,再自己改动一下,加上一下自己想要的东西,就可以了
我们就参考一下知乎的一篇爬取糗百的文章吧: https://zhuanlan.zhihu.com/p/37626163
直接把他的代码拿过来,然后改动一下,在代码中引入time函数(为了延迟请求,对糗百网站友好),再在存入数据库之前,加入几个我们想要展示的值。
先看一下总的数据结构:
在这里插入图片描述
前提是你已经安装好了python环境: 我的环境是python2.7

qiubai.py代码如下:

#!/usr/bin/python
#-*- coding:utf-8 -*-

import pymongo
import requests
from lxml import etree
import time
import random

ID = 0

def getPage(url):
	# 构建请求头
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'}
    response = requests.get(url, headers = headers, timeout=10)
    time.sleep(random.randint(1, 5)) #在1-5秒随机延时请求

    if response.status_code == 200:
    	response.encoding = 'UTF-8'
    	return response.text
    else:
    	print('err')

def parsePage(html):
	global ID
	print(ID)
	html_lxml = etree.HTML(html)
	datas = html_lxml.xpath('//div[contains(@id, "qiushi_tag")]')
	item = {}

	for data in datas:
		username = data.xpath('.//h2')[0].text.strip()

		content = data.xpath('.//div[@class="content"]/span')[0].text.strip()

		comments = data.xpath('.//span[@class="stats-comments"]/a/i')[0].text

		vote = data.xpath('.//span[@class="stats-vote"]/i')[0].text

		image = data.xpath('.//div[@class="thumb"]/a/img/@src')


		item = {
			'username': username,
			'content': content,
			'vote': vote, #点赞数
			'image': image, #图片链接,不一定有
			'id': ID, #到时候翻页需要的id,其实使用微信的skip函数最好
			'shareNum': 0, #分享数
			'comment': '', #评论
			'commentNum': 0 #评论人数
			}
		ID += 1
		print(item )
		print(ID)
		insertMongoDB(item)


def insertMongoDB(item):
	client = pymongo.MongoClient(host = 'localhost', port=27017)
	db = client.qiubai
	colle = db.duanzi
	result = colle.insert(item)
	print('储存成功')


def main(num):
    # num决定爬取页面数
    for index in range(num):
    	#https://www.qiushibaike.com/8hr/page/
    	#https://www.qiushibaike.com/hot/page/ + str(index)+
	    url = 'https://www.qiushibaike.com/imgrank/page/9/'
	    html = getPage(url)
	    parsePage(html)


if __name__ == '__main__':
	#因为糗百只有13页,这里只爬1页
    main(1)

然后我们下载一个Studio 3T, 选择免费试用安装;

然后在qiubai.py文件所在文件夹下, 按住shift按右键,选择在所在文件夹下打开命令行:
输入:

python qiubai.py

等待它爬取完毕, 然后刷新studio 3T ,就会发现test的qiubai数据库里的duanzi集合已经有数据了, 导出(export collection)成json文件,备用;

在这里插入图片描述

小程序云开发教程一: 新建一个云开发项目以及基本布局
小程序云开发教程二:数据的获取(爬虫)
小程序云开发教程三: 数据的布局以及展示
小程序云开发教程四:云函数的使用与点赞功能的实现

顺手点一个赞吧

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
IPO数据获取爬虫程序可以通过以下步骤实现: 1. 确定爬取对象:选择要爬取的网站,例如凤凰网新闻、网易新闻、搜狐新闻等,这些网站都开放了点击数量查询,并且每天更新数据。 2. 确定爬取内容:确定要获取的IPO数据的具体内容,例如公司名称、上市日期、发行价格等。 3. 分析网页结构:使用开发者工具或查看网页源代码,分析目标网页的结构,找到包含IPO数据的HTML元素和对应的CSS选择器或XPath表达式。 4. 编写爬虫程序:使用Python编写爬虫程序,可以使用第三方库如Requests和BeautifulSoup来发送HTTP请求并解析HTML内容。 5. 发送HTTP请求:使用Requests库发送HTTP请求,获取目标网页的HTML内容。 6. 解析HTML内容:使用BeautifulSoup库解析HTML内容,根据之前分析的CSS选择器或XPath表达式提取出目标数据。 7. 存储数据:将提取到的IPO数据存储到数据库、CSV文件或其他数据存储方式中。 8. 设置爬虫频率:为了避免对目标网站造成过大的访问压力,可以设置爬虫的访问频率,例如设置爬虫每隔一段时间访问一次目标网站。 9. 使用代理IP:为了防止爬虫的IP被相关网站封停,可以使用代理IP来访问目标网站。可以从IP代理池中随机选择一部分IP作为代理使用,以模拟多个用户的访问行为。 10. 错误处理:在爬取过程中,可能会遇到网络连接错误、页面解析错误等问题,需要进行错误处理,例如重试、记录错误日志等。 11. 定时运行:可以使用定时任务工具,如crontab或Windows任务计划程序,定期运行爬虫程序,以保持数据的更新。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值