编译环境:python v3.5.0, mac osx 10.11.4

第三方库:针对网页解析,python有丰富的第三方库如:

BeautifulSoup, urllib, requests etc.

可以通过import来引入指定第三方库,通过from lib import function导入第三方库中的指定函数。如:

import requests, urllib.request, time, os from bs4 import BeautifulSoup # 导入需要用到的第三方库

对网页进行解析:BeautifulSoup & url lib

url = 'https://www.ncbi.nlm.nih.gov/core/alerts/alerts.js_=1462105646975' wb_dt=requests.get(url) soup=BeautifulSoup(wb_dt.text,'lxml')

上述代码可以解析指定url中的HTML, 通过requests中的get方式获得。

wb_dt.text可以获得HTML的纯文本文件。

BeautifulSoup(wb_dt.text,'lxml')则能对传入的纯文本文件采用lxml库进行解析。

筛选需要的信息:soup.select('selector')

可以通过chrome浏览器中的检查查询指定元素的位置,复制selector到

soup.select('selector')

这一步骤主要是为了筛选所选元素特殊的位置,selector只要能指定到所需信息的位置即可。

动态网页解析

当我们需要爬取动态网页大量页面信息时,我们可以从不断response为HTML的headers中找寻规律。如图所示,我们发现其连续加载其实是在返回时不断通过request中url的改变生成。

实战源代码 1 爬取霉霉照片

其中导入的os模块可以判断目录是否存在以及新建目录。

os.makedir(path)与os.makedirs(path)的区别在于若父级目录不存在,则os.makedir(path)会报错,而os.makedirs(path)则会连同父级目录一起创建

os.path.exists(path)则可以检查目录是否存在

总结 1

1、第三方库可以良好的解析我们需要爬取的网页

2、通过刷新发现,观察response可以发现request规律,从而抓取静态网页

3、针对具有反爬虫的网页,可以利用time库中的

time.sleep(seconds)来降低访问频率。加入header和proxies也可以防止针对ip的反爬取。

4、常用user agent https://blog.phpgao.com/user_agent_collection.html

实战源代码 2 爬取一页商品数据(初识API)

**筛选出选定区域的字符串.strings **

去除字符串中的大片空格区域.stripped_strings

整体代码

####总结 2

观察推广和转转href与正常商品信息之间的差别,可以通过

soup.select('a[href^="http://bj.58.com/"]')

发现返回值不对时,值可能由js,node.js等生成

打印soup 搜索变量名再从network文件凭经验中找寻

主要看response返回的值为文本的文件

确定目标后看url和headers,遇到反爬将cookies等全部写入headers中逐个尝试,此次实践,request中需要加referee

此次找寻流程:

从按前面提到的方法,网页中检查浏览量。

发现soup返回值不对,查询soup值发现所含值为0。

推测其值可能由js或者node.js控制,重新加载页面查询network中的js文件,查看返回值为文本的文件。

找到目标文件后,查看其headers。

根据headers编译探索request请求(针对反爬)

All source code can be downloaded at GitHub:

https://github.com/jacobkam/WebCrawlerLearning.git

菜鸟python爬虫_Python爬虫学习-基础爬取相关推荐

  1. python爬去百度百科词条_Python爬虫入门学习实践——爬取小说

    本学期开始接触python,python是一种面向对象的.解释型的.通用的.开源的脚本编程语言,我觉得python最大的优点就是简单易用,学习起来比较上手,对代码格式的要求没有那么严格,这种风格使得我 ...

  2. python大作业爬虫_Python爬虫学习-爬取大规模数据(10w级)

    编译环境:python v3.5.0, mac osx 10.11.4 python爬虫基础知识: Python爬虫学习-基础爬取 了解数据库 MongoDB 数据库是储存数据的地方,可以将如下的字典 ...

  3. python爬虫影评_Python爬虫(二十)_动态爬取影评信息

    本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...

  4. 菜鸟Python实战-03爬虫之爬取数据

    最近想学习一下爬虫 所以参考了一下网上的代码,并加以理解和整理,好记性不如烂笔头吧. 以下代码的目标网站是豆瓣电影:https://movie.douban.com/top250?start=%22( ...

  5. Python爬虫基础 爬取网页 访问网页

    前段时间又被人问了会不会爬虫,然后感觉现在爬取数据好像还是挺有用的,所以就在网上找了课程学习了一下,利用Python对网站进行爬取和解析等等.原来使用过八爪鱼这个软件,不太需要有什么编程基础,但是也已 ...

  6. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  7. Python爬虫学习之爬取淘宝搜索图片

    Python爬虫学习之爬取淘宝搜索图片 准备工作 因为淘宝的反爬机制导致Scrapy不能使用,所以我这里是使用selenium来获取网页信息,并且通过lxml框架来提取信息. selenium.lxm ...

  8. python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据

    python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...

  9. python爬取豆瓣电影信息可行性分析_Python爬虫实现的根据分类爬取豆瓣电影信息功能示例...

    本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口:if __name__ == '__main__': main()#! /usr/bin ...

  10. python爬斗鱼直播_Python爬虫:利用API实时爬取斗鱼弹幕

    原标题:Python爬虫:利用API实时爬取斗鱼弹幕 这些天一直想做一个斗鱼爬取弹幕,但是一直考试时间不够,而且这个斗鱼的api接口虽然开放了但是我在github上没有找到可以完美实现连接.我看了好多 ...

最新文章

  1. InstallShield学习笔记(2)-建立快捷方式
  2. 织梦同步静态文件到服务器,静态网站添加到织梦
  3. DSP F28335的SCI模块
  4. Spring @Configuration 和 @Bean 注解
  5. 一份来自28岁.NET老程序员的自白
  6. 使用kubeadm安装kubernetes高可用集群
  7. mysql 正则截取字符串_mysql字符串查找截取与正则表达式的联合应用 | 学步园
  8. 2018北京ICPC D. Frog and Portal(构造)
  9. 使用V-ASSISTANT软件配置V90伺服驱动器参数的具体步骤详解
  10. Cesium专栏-气象雷达动图(附源码下载)
  11. excel2010免费下载与安装
  12. 计算机数学与高中数学衔接,高中数学的断层与衔接研究论文
  13. 浪漫故事:常见HTTP状态码的另类解析
  14. java i= 0001_Java I/O 好复杂,傻傻分不清楚,别担心,我们有线索了。。。
  15. 我关注的一周技术动态 2015.11.08
  16. 东方联盟郭盛华引资近100亿,他到底要干什么?
  17. 去“碳”路,去助力可再生能源电力系统
  18. 渗透测试学习8:文件上传攻击
  19. 算法与数据结构——约瑟夫生者死者游戏
  20. IP地址-网络测试命令

热门文章

  1. 控制面板项 .cpl 文件说明
  2. 细数家庭安防五大乱象 何时能步入正轨
  3. 重写setTimeout扩展参数
  4. C#:把dll封入exe中方法
  5. 巴科斯范式BNF: Backus-Naur Form介绍
  6. 【数据结构】——冒泡排序、插入排序、选择排序
  7. Yolov5目标检测模型运行遇到的相关问题汇总
  8. AWS S3 Windows系统下的文件夹上传基于python
  9. Linux_arm_启动_c语言部分详解,[原创]Linux arm 启动 c语言部分详解第四讲
  10. 出现23.97帧率的原因