菜鸟python爬虫_Python爬虫学习-基础爬取
编译环境: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爬虫学习-基础爬取相关推荐
- python爬去百度百科词条_Python爬虫入门学习实践——爬取小说
本学期开始接触python,python是一种面向对象的.解释型的.通用的.开源的脚本编程语言,我觉得python最大的优点就是简单易用,学习起来比较上手,对代码格式的要求没有那么严格,这种风格使得我 ...
- python大作业爬虫_Python爬虫学习-爬取大规模数据(10w级)
编译环境:python v3.5.0, mac osx 10.11.4 python爬虫基础知识: Python爬虫学习-基础爬取 了解数据库 MongoDB 数据库是储存数据的地方,可以将如下的字典 ...
- python爬虫影评_Python爬虫(二十)_动态爬取影评信息
本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...
- 菜鸟Python实战-03爬虫之爬取数据
最近想学习一下爬虫 所以参考了一下网上的代码,并加以理解和整理,好记性不如烂笔头吧. 以下代码的目标网站是豆瓣电影:https://movie.douban.com/top250?start=%22( ...
- Python爬虫基础 爬取网页 访问网页
前段时间又被人问了会不会爬虫,然后感觉现在爬取数据好像还是挺有用的,所以就在网上找了课程学习了一下,利用Python对网站进行爬取和解析等等.原来使用过八爪鱼这个软件,不太需要有什么编程基础,但是也已 ...
- Python爬虫学习笔记 -- 爬取糗事百科
Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...
- Python爬虫学习之爬取淘宝搜索图片
Python爬虫学习之爬取淘宝搜索图片 准备工作 因为淘宝的反爬机制导致Scrapy不能使用,所以我这里是使用selenium来获取网页信息,并且通过lxml框架来提取信息. selenium.lxm ...
- python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据
python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...
- python爬取豆瓣电影信息可行性分析_Python爬虫实现的根据分类爬取豆瓣电影信息功能示例...
本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口:if __name__ == '__main__': main()#! /usr/bin ...
- python爬斗鱼直播_Python爬虫:利用API实时爬取斗鱼弹幕
原标题:Python爬虫:利用API实时爬取斗鱼弹幕 这些天一直想做一个斗鱼爬取弹幕,但是一直考试时间不够,而且这个斗鱼的api接口虽然开放了但是我在github上没有找到可以完美实现连接.我看了好多 ...
最新文章
- InstallShield学习笔记(2)-建立快捷方式
- 织梦同步静态文件到服务器,静态网站添加到织梦
- DSP F28335的SCI模块
- Spring @Configuration 和 @Bean 注解
- 一份来自28岁.NET老程序员的自白
- 使用kubeadm安装kubernetes高可用集群
- mysql 正则截取字符串_mysql字符串查找截取与正则表达式的联合应用 | 学步园
- 2018北京ICPC D. Frog and Portal(构造)
- 使用V-ASSISTANT软件配置V90伺服驱动器参数的具体步骤详解
- Cesium专栏-气象雷达动图(附源码下载)
- excel2010免费下载与安装
- 计算机数学与高中数学衔接,高中数学的断层与衔接研究论文
- 浪漫故事:常见HTTP状态码的另类解析
- java i= 0001_Java I/O 好复杂,傻傻分不清楚,别担心,我们有线索了。。。
- 我关注的一周技术动态 2015.11.08
- 东方联盟郭盛华引资近100亿,他到底要干什么?
- 去“碳”路,去助力可再生能源电力系统
- 渗透测试学习8:文件上传攻击
- 算法与数据结构——约瑟夫生者死者游戏
- IP地址-网络测试命令
热门文章
- 控制面板项 .cpl 文件说明
- 细数家庭安防五大乱象 何时能步入正轨
- 重写setTimeout扩展参数
- C#:把dll封入exe中方法
- 巴科斯范式BNF: Backus-Naur Form介绍
- 【数据结构】——冒泡排序、插入排序、选择排序
- Yolov5目标检测模型运行遇到的相关问题汇总
- AWS S3 Windows系统下的文件夹上传基于python
- Linux_arm_启动_c语言部分详解,[原创]Linux arm 启动 c语言部分详解第四讲
- 出现23.97帧率的原因