python爬虫

python爬虫笔记(五)网络爬虫之提取—信息组织与提取方法(3)基于bs4库的HTML内容查找方法

女生的网名这么多〃 提交于 2020-01-29 22:26:33
1. 基于bs4库的HTML内容查找方法 1.1 <>.find_all() 和 re (正则表达式库) (1)参数为单一字符串 (2)参数为 列表 (3)参数为True,则返回所有标签内容 (4)显示 以 b 开头的标签,如 b,body。(使用 re:正则表达式库) import requests from bs4 import BeautifulSoup import re r = requests.get("http://python123.io/ws/demo.html") demo = r.text soup = BeautifulSoup(demo, "html.parser") for tag in soup.find_all(re.compile('b')): print(tag.name) (5)find_all中的 attrs:返回带有 attr属性值的 name标签 来源: https://www.cnblogs.com/douzujun/p/12241185.html

爬虫学习笔记1

谁说胖子不能爱 提交于 2020-01-29 21:35:59
目录 原理 步骤 必备基础知识 几个重要概念 get请求和post请求的区别 原理 通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。哇~ (为何有种相见恨晚的赶脚??) 就是发送GET请求,获取HTML 解析HTML获取数据 步骤 根据url获取HTML数据 解析HTML,获取目标信息 存储数据 重复第一步 必备基础知识 python基础知识,随便找个博客或者看官方文档都行,我在 datacamp 上面又看了一遍 HTML语法格式,这个可以参考一下 尚硅谷的谷粒学院 那个老师讲的,真的觉得老师讲的思路清晰,他后面讲python全栈也很清晰,b战上有的,名字忘记了,姓李。 基础知识可以参考一下 崔庆才老师 的官方博客,基本知识点都提到了,就是不太深,但是作为入门够了. 几个重要概念 url:统一资源定位符==请求的协议(http/https) + 网站的域名 + 资源的路径 + 参数 举个例子: https://blog.csdn.net/pleasecallmewhy/article/details/8922826 这个链接的中文释义就是,可以https这个协议访问的资源,位于主机blog.csdn.net上,存在主机的这个/pleasecallmewhy/article/details/8922826位置上

python爬虫基础知识

混江龙づ霸主 提交于 2020-01-28 19:20:07
文章目录 1. 请求 1.1. 带参数的get请求 1.2. 解析json 1.3. 获取二进制数据 1.4. 增加请求头信息 1.5. post请求 2. 响应 2.1. 状态码判断 3. 高级操作 3.1. 文件上传 3.2. 获取cookie 3.3. 会话维持 1. 请求 # 基本用法 import requests response = requests . get ( 'http://httpbin.org/get' ) print ( response . text ) 1.1. 带参数的get请求 # 带参数的get请求 import requests response = requests . get ( 'http://httpbin.org/get?name=germey&age=22' ) print ( response . text ) import requests data = { 'name' : 'germey' , 'age' : 22 } response = requests . get ( 'http://httpbin.org/get' , params = data ) print ( response . text ) 1.2. 解析json import requests response = requests . get (

用Python 爬虫批量下载PDF文档

前提是你 提交于 2020-01-28 14:00:44
更新:之前代码是用 python2 写的,有关 python3 的代码可以参考这位博主的: https://blog.csdn.net/baidu_28479651/article/details/76158051 代码如下: # coding = UTF-8 # 爬取李东风PDF文档,网址:http://www.math.pku.edu.cn/teachers/lidf/docs/textrick/index.htm import urllib.request import re import os # open the url and read def getHtml(url): page = urllib.request.urlopen(url) html = page.read() page.close() return html # compile the regular expressions and find # all stuff we need def getUrl(html): reg = r'(?:href|HREF)="?((?:http://)?.+?\.pdf)' url_re = re.compile(reg) url_lst = url_re.findall(html.decode('gb2312')) return(url_lst) def

python爬虫模块理解

和自甴很熟 提交于 2020-01-28 12:36:11
Url管理器:   用来管理要抓取的url和已抓取的url,防止重复抓取和循环抓取,url管理器的五个最小功能:     1、添加url到容器中     2、获取一个url     3、判断url是否已在容器中     4、判断是否还有待爬取的url     5、将待爬取的url移到已爬取的url 网页下载器:   网页下载器是爬虫的核心组件,它将url对应的互联网网页已html的形式保存在本地。目前有两种网页下载器,1:urllib2(python基础模块) 2:requests(第三库)   urllib2三种下载网页的方法:     1、简单方式下载     2、添加data和http header     3、添加特殊场景的处理器 import http.cookiejarimport urllib.requesturl = "http://www.baidu.com"print("one")response1 = urllib.request.urlopen(url)print(response1.getcode())print (len(response1.read()))print("two")request = urllib.request.Request(url)request.add_header("user-agent","Mozilla/5.0"

学爬虫的第一个问题

孤者浪人 提交于 2020-01-28 12:13:36
requests遇到的错误 1,443错误 requests05 ```python port=443): Max retries exceeded with url: /sug (Caused by NewConnectionError ('<urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003ABF518>: Failed to establish a new connection: [Errno 11004] getaddrinfo failed',)) Process finished with exit code 1 **解决方法:从百度找了,只需要安装几个requests依赖包就可以 pip install cryptography pip install pyOpenSSL pip install certifi** 然后又报错 ```python for item in json_data['data']: TypeError: string indices must be integers 这个错误意思是字符串的下标一定要是整数 原因是未把字符串转换为json对象 转换即可 将字符串转化为json对象 json_data = json.loads(json_data) 运行成功 来源:

python爬虫-利用requests库爬取猫眼电影top100

拜拜、爱过 提交于 2020-01-28 08:24:34
利用requests 库来抓取猫眼电影 TOPl100 的相关内容。 目标站点:https://maoyan.com/board/4 1.抓取首页 定义get_one_page方法,并给他传入url参数 注意:猫眼电影网站有反爬虫措施,设置headers后可以爬取 import requests headers = { 'Content-Type' : 'text/plain; charset=UTF-8' , 'Origin' : 'https://maoyan.com' , 'Referer' : 'https://maoyan.com/board/4' , 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } def get_one_page ( url , headers ) : try : response = requests . get ( url , headers = headers ) if response . status_code == 200 : return response . text return None except

python爬虫 --多线程【晋级版】--阻塞--队列--公共缓冲区

混江龙づ霸主 提交于 2020-01-28 08:11:50
阻塞 import time from selenium import webdriver from selenium . webdriver . support . wait import WebDriverWait from selenium . webdriver . support import expected_conditions as EC from selenium . webdriver . common . by import By import os import threading from queue import Queue class Tencent ( threading . Thread ) : def __init__ ( self , q , name ) : super ( ) . __init__ ( ) self . q = q self . name = name # self.page = page def save_to_html ( self , html_str , filename ) : dirname = os . path . dirname ( filename ) if not os . path . exists ( dirname ) : os . mkdir ( dirname ) with open (

爬虫系列之第4章scrapy框架

柔情痞子 提交于 2020-01-28 04:58:17
一 scrapy框架简介 1 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。 整体架构大致如下: Components: 1、引擎(EGINE) 引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分。 2、调度器(SCHEDULER) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 3、下载器(DOWLOADER) 用于下载网页内容, 并将网页内容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的 4、爬虫(SPIDERS) SPIDERS是开发人员自定义的类,用来解析responses,并且提取items

python爬虫-PyQuery详解

白昼怎懂夜的黑 提交于 2020-01-28 01:54:56
python爬虫-PyQuery详解 Python爬虫解析库,主流的有 PyQuery Beautifulsoup Scrapy Selectors 正则表达式。 PyQuery和scrapy Selectors都是基于lxml模块,而lxml和正则表达式都是C语言写的。 Beautifulsoup是用纯Python编写的。 正则表达式的构造稍微复杂一点,一般在结构化的网页中易出错。 我们声明一个长HTML字符串 html = '' ' <div> <ul> <li class= "item-0" >first item</li> <li class= "item-1" ><a href= "link2.html" >second item</a></li> <li class= "item-0 active" ><a href= "link3.html" ><span class= "bold" >third item</span></a></li> <li class= "item-1 active" ><a href= "link4.html" >fourth item</a></li> <li class= "item-0" ><a href= "link5.html" >fifth item</a></li> </ul> </div> 1.初始化 1)字符串初始化 rom