
Python网络爬虫
从0开始学爬虫
太原浪子
这个作者很懒,什么都没留下…
展开
-
python网络爬虫--爬虫性能分析(9)
多线程,多进程,协程提升性能硬件级别电脑组成的硬件网络加设备软件级别操作系统指定软件进行优化具体软件软件版本软件编程数据结构算法流程时间 空间 转换具体的小方案XXX多设备协作集群很多设备做完全一样的事情分布式做的是不一样的事共同完成了一件事情还是有做相同事情的机器的...原创 2020-10-23 17:44:34 · 337 阅读 · 0 评论 -
python网络爬虫--项目实战--scrapy爬取贝壳网(7)
一、完整代码bk.pyimport jsonimport scrapyfrom ScrapyAdvanced.items import HouseItemclass BkSpider(scrapy.Spider): name = 'bk' allowed_domains = ['bj.ke.com'] start_urls = ['https://bj.ke.com/ershoufang/'] def parse(self, response):原创 2020-10-23 08:42:48 · 755 阅读 · 0 评论 -
python网络爬虫--项目实战--scrapy嵌入selenium,芯片厂级联评论爬取(6)
一、目标爬取芯片厂电影级联页面的评论二、分析2.1 网页分析经过研究发现,该网页的评论是动态加载的。故我们本次采用selenium来解决。本次只拿数据不进行存储。三、完整代码xpc.pyimport scrapyclass XpcSpider(scrapy.Spider): name = 'xpc' allowed_domains = ['www.xinpianchang.com'] start_urls = ['https://www.xinpianchang.原创 2020-10-23 08:25:29 · 1589 阅读 · 2 评论 -
python网络爬虫--项目实战--scrapy爬取人人车(5)
一、目标爬取多页人人车的车辆信息二、分析2.1 网站分析在网页源代码中可以搜索到页面中的数据,所以可以判断该页面为静态加载的三、完整代码renrenche.pyimport scrapyfrom car.items import RrcItemclass RenrencheSpider(scrapy.Spider): name = 'renrenche' allowed_domains = ['www.renrenche.com'] start_urls =原创 2020-10-22 22:38:37 · 905 阅读 · 0 评论 -
python网络爬虫--项目实战--scrapy爬取前程无忧招聘信息(4)
网站分析:发现该网站是动态加载的完整代码:a51job.pyimport jsonimport scrapyfrom LearnScrapy1.items import CompanyItem, JobDescItemclass A51jobSpider(scrapy.Spider): name = '51job' allowed_domains = ['search.51job.com'] start_urls = [ 'https://sea原创 2020-10-21 20:25:48 · 956 阅读 · 1 评论 -
python网络爬虫--项目实战--用scrapy框架爬取王者荣耀英雄信息(3)
wzry.pyimport scrapyfrom LearnScrapy.items import HeroItemclass WzrySpider(scrapy.Spider): name = 'wzry' allowed_domains = ['pvp.qq.com'] start_urls = ['https://pvp.qq.com/web201605/herolist.shtml'] hero_detail_base_url = "https://pv原创 2020-10-20 19:02:24 · 799 阅读 · 0 评论 -
python网络爬虫--scrapy框架(8)
一、简介它是使用了纯python打造的爬虫框架,包含了数据获取、数据提取、数据存储等。1.1 框架框架:和其他三方库没什么本质的区别。框架的优点:1.可以简化开发,用少量的代码实现复杂的功能。2.架构设计3.代码的可维护性和可扩展性都比较强框架的缺点:1.入门门槛高1.2 知识点1.2.1 回调函数:在同步开发中没有回调函数的概念回调函数使用场景都是异步开发异步操作完成,主动通知给程序这个过程就叫回调1.2.2 同步和异步同步程序线性执行异步原创 2020-10-19 21:16:19 · 391 阅读 · 2 评论 -
Python网络爬虫--selenium使用(6)
一、软件安装使用selenium前需要下载对应浏览器的驱动,我使用的是谷歌下载地址:http://npm.taobao.org/mirrors/chromedriver/将解压后的chromedriver.exe文件放到python的工作目录下最后 终端 pip install selenium 即可二、导航到链接from selenium.webdriver.chrome.webdriver import WebDriverurl = 'https://www.youkuaiyun.com/'dri原创 2020-10-19 21:15:51 · 129 阅读 · 0 评论 -
Python网络爬虫--项目实战(2)--起点小说爬取
一、目标爬取起点小说一本免费小说,并将所有章节名称和内容都保存到本地我选择爬取“”我真的好想打球“”二、分析2.1 网页分析ctrl+U 进入网页的源代码,输入任意章节名称,可以在代码中找到,初步判定该网页为静态加载的2.2 反爬分析同样的IP爬取可能会被反爬,所有我选择 fake_useragent 三方库来生成随机的User-Agent三、注意点1.要将爬取的内容进行数据的清洗四、完整代码import requestsfrom fake_useragent import原创 2020-10-18 09:32:47 · 703 阅读 · 0 评论 -
python网络爬虫--项目实战(1)--500px图片爬取
一、目标爬取500px图片并保存目标网址:https://500px.com.cn/community/discover二、分析2.1 网站分析:经过研究发现该网站没有点击下一页的按钮,然后往下拖动下拉条直到最后,会自动刷新出新的内容,基本可以得出该网页是动态刷新的。或者ctrl+U 打开页面源码,复制粘贴一张图片的地址,在源码中找不到对应的地址,也可以判断该页面为动态加载的。2.2 反爬分析:相同的IP爬取大量的图片可能会被反爬(频率反爬),故需要采用UA池三、注意点:1.一定要选取原创 2020-10-17 15:46:40 · 599 阅读 · 0 评论 -
python网络爬虫--练习
一、爬取王者荣耀英雄信息import jsonimport pymysqlimport requestsfrom lxml import etreedef get_heros(url): response = requests.get(url) response.encoding = 'GBK' # 王者荣耀官网编码为gbk,pycharm默认utf-8,故中文乱码 html_etree = etree.HTML(response.text) return原创 2020-10-17 15:29:47 · 539 阅读 · 0 评论 -
python网络爬虫--反爬(7)
服务器常见反爬虫策略验证用户身份User-Agent应对方案爬虫在请求头中添加就可以了验证登陆身份Web浏览器中cookie专用终端 token其实就是名字不一样应对方案获取登陆后的cookie来使用频率反爬30秒之内搜索一次1分钟之内只能浏览10次应对方案降低频率,随机休眠频率统计策略ip切换ip代理代理池买cookie切换cookiecookie池买cookie账号根据设备信息自己原创 2020-10-17 09:54:09 · 181 阅读 · 0 评论 -
python网络爬虫--selenium(6)--练习
一、打开网页获取页面源码from selenium.webdriver.chrome import webdriver# 初始化,需要加载浏览器驱动driver = webdriver.WebDriver(executable_path="chromedriver.exe")url='https://www.xinpianchang.com/channel/index/sort-like?from=navigator'driver.get(url) # 打开网页page_source = d原创 2020-10-15 21:44:12 · 208 阅读 · 0 评论 -
Python网络爬虫--数据持久化(5)
一、数据转换算法摘要,指纹算法,哈希算法,杂凑算法使用场景验证数据完整性所有人都需要提防的场景常见摘要算法md5sha特性单向不可逆不管输入多长,输出长度都是固定的输入如果一样,输出一定一样输入只要发生细微变化,输出会有非常明显的变化编码为了兼容性问题编码会对应解码编码是可逆的A->C C->A常见utf-8base64加密密钥对称加密加密和解密是同一把钥匙常见算法DES,AES非对称加密原创 2020-10-15 21:42:27 · 216 阅读 · 0 评论 -
python网络爬虫--数据提取xpath(4)
xpath使用:1.导入lxml.etree:from lxml import etree2.etree.parse() 解析本地文件html_tree = etree.parse(‘xx.heml’)3.etree.HTML() 服务器响应文件html_tree = etree.HTML(response.read().decode(‘utf-8’))4.html_tree.xpath(xpath路径)基本语法:1.路径查询//:查找所有的子孙结点,不考虑层级关系/: 找直接子原创 2020-10-14 10:11:47 · 833 阅读 · 0 评论 -
python网络爬虫--Requests库(3)
一、 requests.get(url, params=None, **kwargs)import requestsurl = 'https://www.youkuaiyun.com/'response = requests.get(url)print(response) # <Response [200]>,只打印状态码print(response.text) # 输出响应的内容二、response属性和方法1.1 属性属性描述cookies服务器返回给客户原创 2020-10-13 20:00:51 · 112 阅读 · 0 评论 -
python网络爬虫--urllib库的使用(2)
一、模拟浏览器向服务器发送请求url组成:import urllib.requesturl = 'http://www.baidu.com'# 模拟浏览器向服务器发送请求response = urllib.request.urlopen(url=url)# 读取响应的内容print(response.read(n)) 返回二进制的值,n代表读取的字节数二、response的类型和六个方法类型:HTTPResponse方法:1.read()2.readline() 读一行3.原创 2020-09-22 15:43:55 · 343 阅读 · 0 评论 -
python网络爬虫--基本概念(1)
一、爬虫简介1.1 爬虫的定义网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。1.2 爬虫的分类...原创 2020-09-22 15:43:16 · 305 阅读 · 0 评论