python网络爬虫
S_o_l_o_n
logic
展开
-
浅谈网络爬虫——基于Python实现
概述 一个爬虫从网上爬取数据的大致过程可以概括为:向特定的网站服务器发出请求,服务器返回请求的网页数据,爬虫程序收到服务器返回的网页数据并加以解析提取,最后把提取出的数据进行处理和存储。因此,一个爬虫程序可以主要分为三大部分:向服务器请求并获取网页数据、解析网页数据、数据处理和存储。 获取网页数据 一个爬虫程序中,这部分其实是最关键也是最容易出问题的部分。爬...原创 2018-08-23 22:05:51 · 5536 阅读 · 0 评论 -
python网络爬虫之利用selenium解决Ajax逆向解析URL困难问题
现在很多的大型网站都利用率异步加载技术以减少服务器的压力,当我们想爬取利用异步加载的网站数据时,一般无法直接通过显式的url来获取网页源码,对此一般的方法是通过逆向分析来寻找隐藏的url,然后通过这个隐藏的url来获取网页源码。但是问题在于,这个过程需要自己去寻找url的规律,寻找并尝试出有效的隐藏的url,这个过程并不一定有效,因为尽管找到了隐藏的url,但是其不一定具有明显的规律...原创 2019-07-17 14:53:56 · 656 阅读 · 0 评论 -
selenium之chrome中alert无法捕获的可能原因
当利用selenium模拟chrome浏览器时,对于弹窗alert的处理需要特别注意,由于在chorme中,一旦alert出现,则整个页面便会锁定在alert元素上,其他的元素都无法获取和操作,所以必须要先处理alert。 对于alert无法捕获,首先最重要的自然是要注意是否已经交换了浏览器驱动driver的句柄(handle),由于这种弹窗出现的语境常常是打开新网页...原创 2019-03-13 23:35:51 · 2677 阅读 · 2 评论 -
用selenium结合浏览器驱动实现模拟浏览器小结
本文基于python编程语言,python第三方库中有一个很有用的selenium包,可以用来结合相应的浏览器驱动实现一个模拟浏览器,进行自动化,用此可以实现很多功能,比如爬虫、刷视频脚本,总之用户自己可以通过浏览器实现的操作,对于一些重复性的繁琐的任务,都可以通过selenium和相应的浏览器驱动开发脚本,自动完成相应的任务。那么用selenium实现相应功能的步骤以及从中可能遇到...原创 2019-01-21 18:07:08 · 521 阅读 · 1 评论 -
python+selenium:利用WebDriverWait实现多条件等待
WebDriverWait类结合其until或者not_until方法可以实现显性等待,即通过until或者not_until的method参数把外部callable的函数或者实例传给WebDriverWait,然后进行判断。该方法通常会结合expected_conditions模块使用,该模块提供了很多的判断页面元素各种状态的类以及方法,因此两者结合可以实现很多的需求。但是这里有一...原创 2019-01-25 13:44:39 · 10456 阅读 · 3 评论 -
Python + Selenium: expected_conditions介绍
**本文为转载文章,由于不明确出处,故未标明** expected_conditions是Selenium的一个模块,selenium.webdriver.support.expected_conditions,可以对网页上元素是否存在,可点击等等进行判断,一般用于断言或与WebDriverWait配合使...转载 2019-01-24 21:41:01 · 1377 阅读 · 0 评论 -
python正则表达式的贪心算法和非贪心算法
正则表达式是一种字符串匹配和检索的规则,基本各种高级编程语言都实现了正则表达式规则,总体的语法规则也都相似,只是不同的编程语言会有些许的不同。正则表达式主要用在文本提取,笔者主要用在爬虫爬取后的文本数据的清洗,虽然在爬取文本数据时不一定要用正则表达式,比如用Xpath语法就可以快速定位相关数据在网页中的位置,但是当清洗处理爬取后的文本信息时,就需要用到正则表达式了,其简洁性和功能的强大...原创 2019-01-07 22:53:52 · 2133 阅读 · 0 评论 -
python的多线程和多进程
线程是cpu执行的最小单元,因此一个进程中至少有一个线程。当我们在处理任务时,是依靠线程进行的,多线程和多进程意味着要同时处理多个任务。这里“同时”只是一个粗糙的说法,严格地讲,真正在时间上同时进行的任务处理叫做并行,而cpu资源不断的在线程之间进行切换,以达到这几个任务在效果上看起来是同时进行的,这叫做并发。 在python中,线程和进程之间最大的不同在于,多线程没法利...原创 2019-01-06 23:23:06 · 388 阅读 · 0 评论 -
python文件IO不同系统下换行符问题的分析及处理
在文件IO中,不同系统平台对于换行符的默认值是不一样的,在windows下,默认换行符是\r\n,在linux下,默认换行符是\n,在mac os下,默认换行符是\r。在不同的平台上,当我们用notepad++以‘显示所有字符’的方式打开在相应平台上使用默认换行符生成的文件时,可以看到,在windows下,每行的末尾是CR LF,在linux下行尾是LF,而在mac os下则是CR。...原创 2019-10-07 18:08:36 · 1909 阅读 · 0 评论