python爬虫

python3 爬虫总结之代理请求

耗尽温柔 提交于 2020-02-03 08:27:24
1、网页请求、数据请求 urllib.request 请求头中带上headers,模拟浏览器访问网页或者数据请求。 如果在Request中在加入 proxies={'http': IP:Port},可以通过动态IP代理高匿访问资源。通过设置IP端口池,动态随机获取高匿IP端口。推荐西刺代理 https://www.xicidaili.com/nn/ 。 Requests 个人还是比较喜欢Requests,可以使用get,post,以及传入参数等,post请求传递参数时以data={'key1':'value1','key2':'value2'}方式,headers可以设置Content-Type的类型 {'Content-Type':'application/x-www-form-urlencoded'}、{'Content-Type':'multipart/form-data'}、{'Content-Type':'application/json'}、{'Content-Type':'binary'}四种。 注encoding要做utf-8设置。 2、bs4 、BeautifulSoup 数据类型的数据类型包括以下几种 通过遍历html树,可以使用find或者css选择器select或者正则来定位查询要爬虫的数据。 附录w3c shool的爬虫案例教程: https://www

爬虫实战——爬取腾讯招聘的职位信息(2020年2月2日)

我们两清 提交于 2020-02-03 02:38:51
爬取腾讯招聘的职位信息 思路分析 特别说明 1、获取PostId列表 2、爬取详情页面 3、保存数据 完整代码 结果展示 总结分析 思路分析 特别说明 本文以Java工作岗位信息为例进行说明,如果想爬取其他岗位的信息,更改URL请求中的关键字即可。方法仅供交流学习,不要用来做违法的事情。 1、获取PostId列表 由于网页中每一个职位都有一个PostId,而爬取职位的详情信息时,需要用到PostId来构造请求的URL,因此,我先将职位的PostId存放到列表中,为下一步爬取职位的详情信息做准备。 def get_url ( ) : # 爬取的页数,这里爬取前10页 endIndex = 10 postId = [ ] for pageIndex in range ( 1 , endIndex + 1 ) : query [ 'timestamp' ] = int ( time . time ( ) ) query [ 'pageIndex' ] = pageIndex url = raw_url . format ( query [ 'timestamp' ] , query [ 'keyword' ] , query [ 'pageIndex' ] , query [ 'pageSize' ] , query [ 'language' ] , query [ 'area' ] )

Python爬虫学习(三)使用Scrapy库

不羁的心 提交于 2020-02-02 23:55:57
(一)Scrapy库概述   1,安装:pip install scrapy失败;       运行D:\Python\Python36\python.exe -m pip install --upgrade pip命令升级pip命令失败;       修改Python36文件的权限: https://www.cnblogs.com/liaojiafa/p/5100550.html       安装:D:\Python\Python36\python.exe -m pip install wheel       安装:D:\Python\Python36\python.exe -m pip install scrapy   2,框架概述:               入口:SPIDERS;出口:ITEM PIPELINES;用户编写SPIDERS(URL),ITEM PIPELINES(对数据处理)     ENGINE:控制所有模块之间的数据流,根据条件触发事件,不允许用户修改,代码已实现     DOWNLOADER:根据请求下载网页,功能单一,不允许用户修改,代码已实现     SCHEDULER:对所有爬取请求进行调度管理,不允许用户修改,代码已实现     DOWNLOADER MIDDLEWARE:用户可以修改配置;中间件            SPIDERS

顶级Python商业级爬虫案例部署实战视频教程

风流意气都作罢 提交于 2020-02-02 23:48:45
如果对商业级爬虫开发感兴趣的朋友不能错过这次Python的技术盛宴。课程为我们讲解了非常有参考意义和商业价值的Python案例实战案例,能够提供给我们一个非常清晰和高纬度的Python爬虫思路,包括帮助我们进行工程项目指导,如何完成Pyhon工业化爬虫框架,以及Pyhon商业爬虫的上线部署。 ===============课程目录=============== (1)\0.准备工作; (2)\1. 编程常识; ├─1.pdf ├─2.pdf ├─直播与现场练习:编程常识~1.mp4 ├─autobro.py (3)\2. 基本语法规则;目录中文件数:2个 ├─Python的基本语法规则~1.mp4 ├─Day 2 直播同步笔记.pdf (4)\3.爬虫的基本原理;目录中文件数:1个 ├─爬虫的基本原理~1.mp4 (5)\4.数据存储;目录中文件数:1个 ├─-数据存储~1.mp4 (6)\5.如何写出不踩坑的爬虫;目录中文件数:7个 ├─如何写出不踩坑的爬虫1_person~1.mp4 ├─如何写出不踩坑的爬虫1_screen~1.mp4 ├─如何写出不踩坑的爬虫2_person~1.mp4 ├─如何写出不踩坑的爬虫-person~1.mp4 ├─如何写出不踩坑的爬虫-~1.mp4 ├─微信群聊天记录.pdf ├─爬虫 2.pdf (7)\6.如何写出商业级的工程化爬虫框架

动态渲染反爬虫

若如初见. 提交于 2020-02-02 18:12:31
目录 动态渲染反爬虫 动态渲染的通用解决办法 Selenium套件 异步渲染库 Puppeteer 动态渲染反爬虫 动态网页比静态网页更具有交互性,能给用户提供更好的体验 动态网页中常见的表现形式有 下拉刷新,点击切换和悬停显示等 由 JavaScript 改变 HTML DOM 导致页面内容发生变化的现象称为动态渲染 动态渲染的通用解决办法 如果每次遇到很麻烦的动态渲染页面,都需要猜接口参数,跟进和分析 JavaScript 代码逻辑 那么耗费的时间成本就很高了 当目标网站发生产品迭代升级或针对爬虫有意改动代码,爬虫工程师就需要做对应的调整 可能目标网站的前端工程师只花费了 2 小时编写用于加密请求参数的代码,而爬虫工程师却需要花费 3 天甚至更多时间才能分析出正确的计算逻辑 那么我们就可以用渲染工具,来模拟用户的一些操作,比如点击,滑动和拖拽 其中常用的是 Puppeteer,Splash,和 Selenium这三种工具 Selenium套件 基本使用 from selenium import webdriver url = 'http://www.porters.vip/verify/sign' # 初始化浏览器对象 brower = webdriver.Chrome() # 向指定网址发起 GET 请求 brower.get(url) # 使用 CSS 选择器定位按钮

Python爬虫(三)——Robots协议

早过忘川 提交于 2020-02-02 10:02:46
Python爬虫(三)——Robots协议 Robots协议全称为Robots Exclusion Standard,网络爬虫排除标准。它的作用是告知网络爬虫哪些可以抓取哪些不可以。通常被放在网站根目录下的robots.txt。 注:并不是所有网站都有Robots协议,如果没有默认为内容都可以爬取。 基本语法 #*代表所有,/代表根目录 User-agent:* Disallow:/ User-agent 限制的User-agent Disallow 不允许访问的目录 使用 自动或人工识别robots.tst,再进行内容爬取。 你也可以不遵守robots.txt,但会产生风险。只有当你的程序不会对服务器产生威胁或者行为类似人类的时候可以不遵守robots.txt。这时候你获取的资源不能用于商业用途。 来源: CSDN 作者: 等等,还有一个bug 链接: https://blog.csdn.net/qq_18543557/article/details/104141557

Python爬虫日记

蹲街弑〆低调 提交于 2020-02-02 05:11:14
python爬虫日记 正则表达式爬取内容 分析网站url可以看见网页的翻页是根据后面的 参数p=1 确定,可以根据网页的url可以得到所有的网页信息 爬取目标 得到小说的排名,书名,原文链接,作者,字数,点击量,和更新时间的信息 分析网站的html代码可以看到我们需要的信息 代码展示 # 引入我们需要的python库 import requests from requests . exceptions import RequestException import re import json # 发送http请求的函数 def get_one_page ( url ) : response = requests . get ( url ) if response . status_code == 200 : return response . text return '失败' # pattern是定义的正则表达式,可以获取到我们的信息 def parse_one_page ( html ) : pattern = re . compile ( '.*?num">(\d+)</li>.*?bookname">.*?bn.*?href="(.*?)">(.*?)</a>?.*?author">(.*?)</li>.*?length">(\d+).*?click">(\d+).*

python爬虫将职友集招聘信息爬取后存入excle中

瘦欲@ 提交于 2020-02-02 05:05:43
导入爬虫库 import requests from bs4 import BeautifulSoup 导入操作excle的库 import xlwt import xlrd import xlutils 网页页面 代码 import requests from bs4 import BeautifulSoup import xlwt import xlrd import xlutils #得到excle对象 book = xlwt . Workbook ( ) sheet = book . add_sheet ( 'sheet1' ) listall = [ ] #用于存储爬去的职位名称和薪资 #爬取1到29页所有的信息 for i in range ( 1 , 30 ) : URL = 'https://www.jobui.com/jobs?jobKw=linux&cityKw=%E5%8C%97%E4%BA%AC&n=' + str ( i ) #wb_data = requests.get(URL) headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari

python爬虫--北京市政信件列表

六月ゝ 毕业季﹏ 提交于 2020-02-01 23:39:35
今天准备进行北京市政府信件列表界面信息的爬取,通过老师给的教程发现界面的跳转网址不会发生改变,原来的思路不可用,查询资料可以使用geckodeiver来驱动网页的自动跳转。参考博文: https://www.cnblogs.com/nuomin/p/8486963.html。 其次学习了爬取中需要用到的css选择器的使用。初步了解了爬虫的思路。 来源: https://www.cnblogs.com/1061321925wu/p/12250666.html

python爬虫(二)

荒凉一梦 提交于 2020-02-01 14:26:31
16正则表达式函数 re.match() re.search() re.sub() 1.re.match()函数 相比于search匹配,match只能从开头开始匹配 import re # +的使用和*的使用, string = 'thonyjsdkajsdpoy' pat = 'p.*y' result = re . match ( pat , string , re . I ) #模式修正符,忽略大小写 print ( result ) 结果是匹配不到的,因为开头没有匹配到,后面出现也不行 None 2.re.conpile()函数 格式re.compile(‘正则表达式’).findall(‘所有数据’) import re # +的使用和*的使用, string = 'thpnyjsdpooooykajsdpoy' pat = 'p.*?y' result = re . compile ( pat ) . findall ( string ) print ( result ) 最后,result变成了一个列表 [ 'pny' , 'pooooy' , 'poy' ] 17常见正则实例讲解 #实例1:匹配.com 和.cn网址 string=" < a href=‘http://www.baidu.com ’ >百度首页< /a>’ " import re # +的使用和