#!/usr/bin/env python3
from bs4 import BeautifulSoup
import requests
import csv
import bs4
import codecs#检查url地址并返回网页contents
def check_link(url):try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:print('无法链接服务器!!!')# 判断一个unicode是否是英文字母
def is_alphabet(uchar):         if ('\u0041' <= uchar<='\u005a') or ('\u0061' <= uchar<='\u007a'):return Trueelse:return False#爬取表格数据
def get_contents(urlist):'''urlist: a list containing all the useful urls'''result = []for url in urlist:content = check_link(url)soup = BeautifulSoup(content,'lxml')trs = soup.find_all('tr')for tr in trs:ui = []for td in tr:ui.append(td.string)result.append(ui)return result#爬取URL链接
def get_urls(url_content,root_url="https://www.shanbay.com"):'''get all the urls from url_content and save into a list'''ulist = []soup = BeautifulSoup(url_content,'lxml')urls=soup.find_all('a')  for url in urls:  try:if url.string.startswith('【无老师7天TOEFL】List'):ulist.append(root_url+url.get('href'))for j in range(2,11):extend_url = root_url+url.get('href')+'?page='+str(j)ulist.append(extend_url)except:passreturn ulistdef save_contents(result):'''result: all the useful result from urls'''with codecs.open('shanbay.csv', 'w', 'utf_8_sig') as f:writer = csv.writer(f)for i in range(len(result)):try:if is_alphabet(result[i][1]):   writer.writerow([result[i][1],result[i][3]])print("write in line:",i)except:print("error in line:{}, contents is:{}".format(i,result[i]))def main():src_url = "https://www.shanbay.com/wordbook/5440/"# get the contents in source pagesrc_content = check_link(src_url)#get all the useful urls in source pageurls = get_urls(src_content)# scrapy all the useful contents from all the urlsresult = get_contents(urls)#save all the useful contents into csv save_contents(result)main()

效果图:

Python爬取扇贝“【无老师】7天搞定TOEFL单词”相关推荐

  1. Python爬取扇贝Python必背词汇

    一.需求分析 爬取网址:http://www.shanbay.com/wordlist/110521/232414/ 需求: 获取所有的 python 词汇数据,形成字典,存储数据. 二.代码实现 # ...

  2. Python爬取考研张宇老师新浪微博-ajax加载

    新浪微博中的数据采用Ajax加载进行显示,ajax加载即由JavaScript向服务器发送了一个请求来获取新的微博数据,并将其解析,最终将其渲染在网页中. ajax的分析方法: 一.分析请求 对于考研 ...

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

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

  4. Python爬取高清无版权美图

    前言 做公众号,总是会需要使用一些图片做封面或背景.我的公众号的图片有两种来源:一是通过创可贴自己动手修改下就可以用了,还一种就是在网上下载图片. 那如何下载高清并且可以供使用(无版权)的图片了?我是 ...

  5. python爬取微博评论(无重复数据)

    python爬取微博评论(无重复数据) 前言 一.整体思路 二.获取微博地址 1.获取ajax地址2.解析页面中的微博地址3.获取指定用户微博地址 三.获取主评论 四.获取子评论 1.解析子评论2.获 ...

  6. Python 爬取 201865 条《隐秘的角落》弹幕,发现看剧不如爬山?

    作者 | 朱小五 责编 | 屠敏 封图 | CSDN 付费下载自东方 IC 最近又火了一部国产剧:<隐秘的角落>. 如果你没看过,那可能会对朋友圈里大家说的"一起去爬山" ...

  7. Python爬取《隐秘的角落》弹幕数据,实现简单可视化(附源码)

    工具使用 开发环境: win10.python3.6 开发工具: pycharm 相关模块 : requests,stylecloud 思路分析 1.爬虫获取数据 爱奇艺的弹幕数据是以 .z 形式的压 ...

  8. python爬取网站时,一键获取headers、url等信息(真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽)

    python爬取网站时,一键获取headers.url等信息 (真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽) 作为Python的使用者,我今天就和大家来分享分享我学习python的经验 ...

  9. python爬取bilibili弹幕_用Python爬取B站视频弹幕

    原标题:用Python爬取B站视频弹幕 via:菜J学Python 众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一 ...

最新文章

  1. python语言属于-python属于哪种语言
  2. java float 转double_将float转换为double而不会丢失精度
  3. git如何合并指定文件内容_git小技巧--如何从其他分支merge个别文件或文件夹
  4. 计算机应用虚拟仿真实验答案,虚拟仿真 实验教学+.ppt
  5. java继承层次结构,在状态模式中实现继承层次结构 - java
  6. 用java编写生产者消费者问题_用java代码实现生产者和消费者的问题
  7. 用Openswan组建Linux IPSec ---第一部分
  8. Linux系统日志详解
  9. 计算机辅导资料,计算机基础辅导资料.doc
  10. java div2_系统学习 javaweb2----HTML语言2
  11. 四张类图理一下Streams的用法
  12. 全国火车高铁站及车次数据爬虫(内含100W+数据,免费领取!)
  13. 计算机教程无线路由器桥接上网,计算机教程无线路由器桥接上网-路由器桥接设置图解...
  14. windows服务器双网卡链路聚合_[分享]Windows 8 及以上版本 开启多网卡链路聚合 | 霸王硬上弓's Blog...
  15. 很短,很文艺,很唯美。这才是真正的英文经典
  16. Git 学习笔记:6 GitHub
  17. 安装WebSphere Application Server
  18. 阿里云域名网站https申请,ssl续签设置图文教程
  19. UE4 什么是蓝图,如何用来快速创建原型?
  20. 2021年G3锅炉水处理考试及G3锅炉水处理最新解析

热门文章

  1. PIC32MX 读写flash调试经验
  2. 2017京东前端校招面试
  3. 当前国内外微生物学研究的前沿有哪些?
  4. Thymeleaf的th:href标签失效的一种情况分析及解决方案
  5. sketch_apr04a:82:4: error: stray ‘\302‘ in programsketch_apr04a:82:4: error: stray ‘\240‘ in progra
  6. “你没有权限查看该对象的安全属性,即使你是管理用户“
  7. 重点知识学习(8.2)--[JMM(Java内存模型),并发编程的可见性\原子性\有序性,volatile 关键字,保持原子性,CAS思想]
  8. 2018年度热度超高的小程序排行榜,你有用过这些吗!
  9. L学姐北京美团测开一面二面
  10. java-php-python-ssm在线影视点播系统计算机毕业设计