首先用selenium+chrome爬取每日学习的页面,把每天的讲义链接(微信页面地址)爬下来。

检查URL发现每天的页面只有日期不同,例如:

https://www.shanbay.com/web/checkinplan/camp/user/plans/etchq?date=2018-03-16&course_type=read

https://www.shanbay.com/web/checkinplan/camp/user/plans/etchq?date=2018-03-17&course_type=read

因此,利用timedate构造每天的日期字符串,然后拼接起来。

爬取时将讲义的链接保存到CVS文件,方便后续操作。

由于扇贝读书营的网页需要用户登陆,所以使用了Chorme的用户配置,这样只要自己登陆过一次,短期内就可以使用爬虫了。

#!/usr/bin/python
#coding:utf-8
#异常处理没有做,如果页面没有讲义的地址会报错。from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from datetime import date
import datetime
import time
import csvoutd = date(2018,2,24)
delta = datetime.timedelta(days=1)
#tim = "2017-11-26"
chptions = Options()
chptions.add_argument("user-data-dir=C:\Users\GTMer\AppData\Local\Google\Chrome\User Data")
driver = webdriver.Chrome("chromedriver.exe", chrome_options = chptions )
#driver.get("https://www.baidu.com")
url_head = "https://www.shanbay.com/web/checkinplan/camp/user/plans/etchq?date="
url_tail = "&course_type=read"
num = 0
while num < 21:  #21是天数m_date = d.strftime("%Y-%m-%d")m_url = url_head + m_date + url_taildriver.get(m_url)time.sleep(3)elem = driver.find_element_by_xpath('//*[@id="room-card"]/div/a[2]')url = elem.get_attribute('href')print urlcsvout.dict2csv({m_date:url})num = num + 1d = d + delta
driver.quit()

另附自己写的存入csv文件的python函数。

import csvdef dict2csv(dict):with open('output.csv', 'a+b') as f:w = csv.writer(f)w.writerows(dict.items())def list2csv(li):with open('output.csv', 'a+b') as f:w = csv.writer(f)w.writerow(li)

得到CSV文件(微信页面地址)后,麻烦来了。保存网页我采用了pyautogui模拟鼠标键盘操作的方式,ctrl+s和Enter保存,但是微信的面是当前图片在页面中显示才会加载图片,屏幕区以外的图片不会加载,这就导致了保存下来的网页没有图片。这是很尴尬的事情。附上无图的爬虫T^Tdemo。

#!/usr/bin/python
#coding:utf-8
#http://mp.weixin.qq.com/s/a2479Bap5nfU9awB1xYOnQfrom selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from datetime import date
import datetime
import time
import csvout
import pyautoguidriver = webdriver.Chrome("chromedriver.exe")
driver.get("http://mp.weixin.qq.com/s/a2479Bap5nfU9awB1xYOnQ")
time.sleep(3)
pyautogui.scroll(-10000000)
time.sleep(3)
pyautogui.hotkey('ctrl', 's')
time.sleep(3)
pyautogui.press('enter')driver.quit()

要想完整的下载网页是个很麻烦的事情,参见知乎问题如何完整离线保存网页,包括网页完整特效?和为什么网页保存软件或插件都需要重新排版?

舍友给的方法是获取网页中图片的链接,图片都下载下来,然后修改掉源代码中的图片路径,改为保存的图片路径。听起来似乎是可以,但是好麻烦,等以后闲下来慢慢弄吧。

刷题去了!

扇贝读书营指导讲义爬取相关推荐

  1. Java网络爬虫--一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库

    一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 目录 一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 第一步:创建项目,搭建项目结构 p ...

  2. dlut 人工智能基础上机————创造营2020数据爬取

    import json import requests from bs4 import BeautifulSoup import os from openpyxl import workbook # ...

  3. 爬虫实战5:豆瓣读书爬取

    文章目录 前言 一.页面解析 二.代码展示 1.引入库 2.主要代码展示 总结 前言 一.页面解析 第一步:本次爬取的内容是豆瓣网站上的读书标签,主要爬取的内容是文学下面的热门标签,涉及到的字段有 [ ...

  4. Requests+Xpath 爬取豆瓣读书TOP并生成txt,csv,json,excel文件

    说明: ##来源:https://www.cnblogs.com/yizhiamumu/p/10270926.html 1 Requests+Xpath 爬取豆瓣读书TOP ''' Requests+ ...

  5. Python-爬虫(Scrapy爬虫框架,爬取豆瓣读书和评分)

    文章目录 1.Scrapy注意点 2. Scrapy爬取豆瓣读书和评分 代码部分 数据定义items.py 爬虫部分spiders/book.py 数据存储部分pipelines.py 启动爬虫执行c ...

  6. python爬虫爬取豆瓣读书

    python的课程设计,我爬取的是豆瓣的图书 设计题目:  豆瓣读书的Python爬虫 一.需求分析 由于豆瓣上的图书良莠不齐,很难一下选择适合我们的图书,所以我想通过Python的爬虫程序,实现对豆 ...

  7. Python爬虫-爬取扇贝单词(Xpath)

    爬取扇贝单词 ====================== ====================================================================== ...

  8. python扇贝单词书_Python脚本 扇贝单词书爬取

    这是一个·用于爬取扇贝单词书的脚本 将在.py文件目录得到一个名为out.txt的输出文件 主要使用了selenium库(webdriver) 使用方式: 更改 13行中指向webdriver驱动器 ...

  9. Python网络爬虫:利用正则表达式方法爬取‘’豆瓣读书‘’中‘’新书速递‘’条目

    1.简述:正则表达式是爬虫的方法之一,这里利用Requests库进行爬取,尽管Urllib也能进行爬取,但过程过于繁琐,在了解Urllib的爬取过程后,没有进行实战演练,但在学习了Requests的爬 ...

最新文章

  1. (转)asp和asp.net区别
  2. NULL、0、nullptr的区别?
  3. php把字符串变为数组_php将字符串转换为数组
  4. selenium操作cookies实现免密登录,自动发微博
  5. web页面在线编辑功能
  6. java 加密解密编程,java 加密解密容易实现
  7. 三菱伺服自动调谐_三菱伺服在执行离线自动调整之前
  8. 2021年起重机械指挥考试资料及起重机械指挥理论考试
  9. python语言实现图像的手绘效果
  10. 基于html5动画效果毕业论文,动画设计毕业论文15篇
  11. 第一天 游戏策划学习
  12. 星际争霸新手战术指南点滴
  13. 华大(小华)HC32L130工程创建
  14. 【论文解读 | AAAI2020】NeuralCD:Neural Cognitive Diagnosis for Intelligent Education Systems
  15. 分部积分法解决二重积分问题
  16. 计算机怎么通电启动,怎么让电脑一通电就立即开机?
  17. CPU load高但CPU usage低问题排查
  18. Unity学习笔记:私有变量private如何在编译器可见 公有变量public在编译器隐藏
  19. Android动画的优化
  20. 用友云全新上线 企业服务都在这

热门文章

  1. 我用python分析了李子柒的辣酱真的好吃吗?
  2. Android动态换肤实现原理解析,原理+实战+视频+源码
  3. 【通信仿真】基于matlab空时自适应处理降维仿真【含Matlab源码 1957期】
  4. “And” 在正则表达式中 ``
  5. 【手写ICP】ICP -SVD 手动实现与例程(上)
  6. 安科瑞油烟浓度在线监控仪在江苏省某县餐饮油烟监测治理项目中的应用
  7. 解决app欢迎页面白屏问题
  8. IE6支持HTML4,关于IE6.7.8.FF兼容的问题
  9. c语言数据结构_链表的应用——学生管理系统
  10. java—stream流递归实现树形结构