整体框架

使用国内能访问的某国外 app angine 爬取Jay的 Instagram 并显示,再使用国内的 sae 访问这个网站,再爬取一次并发送到微博小号。

bs4

使用requests爬取 Instagram 时候,并没有加request header,Instagram 对 robot 还算友好,直接返回不带 js 的网页信息。通过bs4迅速定位到照片、视频信息,再用正则表达式提取到链接并下载、显示。,正则表达式让人头痛,使用str.split(' ')来使字符串变成列表。

from bs4 import BeautifulSoup

filepath = 'C:\Users\hndx\Desktop\ins.html'

soup = BeautifulSoup(open(filepath),'lxml')

script = soup.select('script')

print str(script[2]).split('},{"node":')[1]

通过分析ins.html,得到每个node就是一个动态。这样str(script[2]).split('},{"node":')[1]就是带有Jay最新动态信息的 Unicode 字符了。应用json 直接将这个信息转化成字典dict,如下

import json

i = json.loads(info)

print i["edge_media_to_caption"]['edges']

"""

[{u'node': {u'text': u'Just finished now \u8b1d\u8b1d\u91d1\u83ef\u7684\u670b\u53cb\u5011 high\u7684\u4e0d\u8981\u4e0d\u8981\u7684 #\u91d1\u83ef #\u96d9\u7bc0\u68cd#\u96d9\u622a\u68cd'}}]

"""

保存图片

import requests

s = requests.session()

ss = s.get('https://www.baidu.com/img/bd_logo1.png')

open('logo.png', 'wb').write(ss.content)

数据库 ORM Flask-SQLAlchemy

class photo(db.Model):

__tablename__ = "photoid"

id = db.Column(db.Integer) #参数 primary_key=True 表示此键值不能重复,必须有一个primary_key=True。

url = db.Column(db.String(4096),primary_key=True )

text = db.Column(db.String(4096))

def __init__(self, id, url,text):

self.id = id

self.url = url

self.text = text #这里有三个行

关于创建、查找

In [1]: import flask_app

In [2]: con = ['1','2']

In [3]: flask_app.photo(con[0],con[1])

Out[3]:

In [4]: flask_app.db.session.add(flask_app.photo(con[0],con[1]))

In [5]: flask_app.db.session.commit()

In [6]: flask_app.photo.query.filter_by(id='1').first()

Out[6]:

In [7]: p1 =flask_app.photo.query.filter_by(id='1').first()

In [8]: p1.id

Out[8]: 1

In [9]: p1.url

Out[9]: u'2'

Mysql 用到的语句

DROP TABLE table_name ;

删除数据表

insta.py

# -*- coding: utf-8 -*-

"""

insta 爬虫

Created on Fri May 04 09:02:26 2018

@author: aubucuo

"""

import requests

from json import loads

from bs4 import BeautifulSoup

import re

s = requests.session()

u = 'https://www.instagram.com/jaychou/'

def ins(pid):

rt = []

c1 = s.get(u)

soup = BeautifulSoup(c1.content,'lxml')

script = soup.select('script')

ls = script[2].contents

ls1 = re.findall('window._sharedData = (.+?);', str(ls[0]))

js = loads(ls1[0])['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges']

j_id = js[0]['node']['id']

is_video =js[0]['node']['is_video']

j_url = js[0]['node']['display_url']

j_text = js[0]['node']['edge_media_to_caption']['edges'][0]['node']['text']

if j_id!= pid and not is_video: #如果id 不重复 且不是video

rt.append(True)

rt.append(j_id)

rt.append(j_url)

rt.append(j_text)

c2 = s.get(j_url)

open('mysite/static/jay.jpg', 'wb').write(c2.content)

return rt

else :

rt.append(False)

return rt

其中pid是上次执行时候最新一张图片的id,用来判断是否有更新。其实这里bs4对我的帮助并不大。上面程序只做到了保存最新的一张图片(jay.jpg),实测中,总是保存第二张图片,可能是正则表达式的问题。不影响功能,不再深究了。

使用 json 精准定位N次,(注意到js变量)

python爬取周杰伦歌词_Python 爬取周杰伦 instagram相关推荐

  1. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  2. python抓取微博评论_Python爬取新浪微博评论数据,你有空了解一下?

    开发工具 Python版本:3.6.4 相关模块: argparse模块: requests模块: jieba模块: wordcloud模块: 以及一些Python自带的模块. 环境搭建 安装Pyth ...

  3. python爬取手机微信_Python爬取微信好友

    前言 今天看到一篇好玩的文章,可以实现微信的内容爬取和聊天机器人的制作,所以尝试着实现一遍,本文记录了实现过程和一些探索的内容 itchat安装 对微信的控制可以使用itchat来实现,我们找到itc ...

  4. python开源代码百度盘_python爬取百度云网盘资源-源码

    今天测试用了一下python爬取百度云网盘资源. 代码片段import urllib import urllib.request import webbrowser import re def yun ...

  5. python爬取动态网页_python爬取动态网页数据,详解

    原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了? 浏览器请求数据方式:浏览器向服务器的api(例 ...

  6. python爬关键词百度指数_Python 抓取指定关键词的百度指数

    百度指数很多时候在我们做项目的时候会很有帮助,从搜索引擎的流量端给到我们一些帮助,比如:家具行业的销量跟"装修","新房","二手房"等关键 ...

  7. python爬取虾米音乐_Python爬取620首虾米歌曲,揭秘五月天为什么狂吸粉?!

    最近两天,我被朋友圈的五月天粉丝(五迷)疯狂刷屏,"五月天永远陪你到20岁""演唱会即视感",这些字眼让我恨不得马上奔到电影院打卡. 作为五迷,我是满怀激情地在 ...

  8. python爬取虾米音乐_Python 爬取 620 首虾米歌曲,揭秘五月天为什么狂吸粉?!

    原标题:Python 爬取 620 首虾米歌曲,揭秘五月天为什么狂吸粉?! 来源:Yura不说数据说 作者 :Yura 最近两天,我被朋友圈的五月天粉丝(五迷)疯狂刷屏,"五月天永远陪你到2 ...

  9. python爬取pdf内容_Python爬取读者并制作成PDF

    学了下beautifulsoup后,做个个网络爬虫,爬取读者杂志并用reportlab制作成pdf.. crawler.py #!/usr/bin/env python #coding=utf-8 & ...

  10. python背景怎么自定义铃声_python爬取手机铃声

    相信每个人都会给自己的手机调一个好听的音乐作为铃声,但是对于iphone用户来说换铃声一般都会去找第三方平台来进行更换,众多平台当中不得不说的就是爱思手机助手,今天我将带你通过python爬虫来批量进 ...

最新文章

  1. 施一公:世界如此未知,还有什么物事必须难以释怀?
  2. table的分页打印
  3. CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)
  4. Create your own blockchain amp; cryptocurrency! - understand blockchains by creating one in python
  5. Xcode9学习笔记69 - 创建各种类型的文件(文本、数组、字典、图片)
  6. PaddleOCR——Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案
  7. 学习Windows编程遇到的问题
  8. 小技巧:不用任何媒体处理软件进行视频压缩
  9. 详解优酷视频质量评价体系
  10. 还在为入门深度学习发愁吗?其实你只需要一周的时间 !
  11. server sql 分组 去重 字符串拼接_SQL必知必会
  12. php 到精通 书,PHP从入门到精通——读书笔记(第20章:Zend Framwork框架)
  13. ExtJS--Combobox多选相关(1)
  14. 不能访问共享-The network location cannot be reached
  15. OpenCV各个版本的下载地址
  16. Http分段下载实现
  17. Unity 5.x游戏开发指南笔记(一)
  18. 爱站网关键词挖掘查询工具-批量网站关键词挖掘导出软件免费下载
  19. Samba服务器的配置全过程
  20. 石川圖 / 鱼骨图 / 關鍵要因圖 / 因果圖

热门文章

  1. html bootstrap主题,10大的 Metro 风格的 Bootstrap 主题和模板
  2. bios卡+型号+hp服务器,HPE Gen9 server UEFI BIOS下升级BIOS 阵列卡 HBA卡固件的操作方法...
  3. iOS URL Scheme
  4. php正则表达式. 123,php正则表达式 - 路人甲123的个人页面 - OSCHINA - 中文开源技术交流社区...
  5. 自动化测试处理银行密码输入框
  6. 软件测试文档模板 ppt,软件测试技术.ppt.pdf
  7. java服务器限速下载_Java文件下载限速
  8. GWT RPC 开发
  9. 同时打开多个独立Excel窗口
  10. web漏洞类型概述(owasp top10笔记)