python爬虫

Python爬虫 获取豆瓣电影信息

前提是你 提交于 2020-02-24 13:40:44
使用requests,lxml模块获取豆瓣电影所有分类下的电影(电影标题,演员,评分,链接,类型等信息) 获取主页面内容(url:https://movie.douban.com/chart) 将主页url并传给get_content函数,使用xpath获取到所有类型的url 使用正则提取每个url里的type_name,type参数(因为每个类型的详情页是ajax请求),用于拼接ajax请求地址 每个类型的ajax分页处理,返回json数据 从json数据中提取需要的字段信息 下面是源码 import requests , json , re from lxml import etree from urllib import parse def get_conent ( url , headers ) : ''' :param url: 请求url :param headers: :return: python的list或者字典 ''' response = requests . get ( url , headers = headers ) return response . text def parse_json ( json_data ) : item = { } for data in json_data : rating = data [ 'rating' ] imag

04 爬虫数据存储之Mongodb

时光怂恿深爱的人放手 提交于 2020-02-24 09:56:29
MongoDB 认识MongoDB   MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 mongodb安装教程: https://www.cnblogs.com/zhoulifeng/p/9429597.html mongodb相关操作: 数据库操作: 1 > use blog 2 switched to db blog 3 > show dbs 4 admin 0.000GB 5 config 0.000GB 6 local 0.000GB 7 test 0.000GB 8 > db.article.insert({"title":"西游记"}) 9 WriteResult({ "nInserted" : 1 }) 10 > db.userinfo.insert({"name":"alex"}) 11 WriteResult({ "nInserted" :

Python爬虫 使用Selenium爬取腾讯招聘信息

有些话、适合烂在心里 提交于 2020-02-24 05:02:21
使用Selenium爬取腾讯招聘信息,并保存excel 代码比较简单,直接上源码 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 from lxml import etree import xlwt class Tencent ( object ) : def __init__ ( self , url ) : self . url = url self . driver = webdriver . Chrome ( ) self . data_list = [ ] self . main ( ) # 返回页面内容 def get_content_by_selenium ( self , url ) : self . driver . get ( url ) # 显示等待 直到div[@class="correlation-degree"]'加载出来 wait = WebDriverWait ( self .

爬虫学习(二)---bs4库的使用

痞子三分冷 提交于 2020-02-23 22:52:37
文章目录 1. bs4库的安装 2. bs4的初始化 3. BeautifulSoup类的基本元素 4. bs4标签树的下行遍历 5.bs4标签树的上行遍历 6.bs4标签树的平行遍历 1. bs4库的安装 通过cmd安装 bs4 pip install beautifulsoup4 2. bs4的初始化 调用prettify()函数美化输出HTML源代码 import requests from bs4 import BeautifulSoup r = requests . get ( "http://www.baidu.com" ) soup = BeautifulSoup ( r . text , "html.parser" ) # 对html内容解析 print ( soup . prettify ( ) ) # 美化输出 BeautifulSoup(参数1:源代码, 参数二: 解析器) 解析器 来源 特点 html.parser bs4库 1、Python的内置标准库 2、执行速度适中 3、文档容错能力强 lxml pip install lxml 1、速度快 2、文档容错能力强 xml pip install lxml 1、速度快 2、唯一支持XML的解析器 html5lib pip install html5lib 1、最好的容错性 2、以浏览器的方式解析文档 3

Python Scrapy框架

狂风中的少年 提交于 2020-02-23 03:31:50
全局函数 创建新的爬虫文件: Scrapy startproject 文件名 Scrapy version: 查看scrapy版本 Scrapy version -v :可以显示Scrapy依赖库的版本 Scrapy view 查看网址源代码 Scrapy shell 网址 : 测试网址 再输入 response.text 拿到网页的源代码 Scrapy fetch 下载网页源代码 Scrapy bench 运行快速基准测试。 scrapy list 列出spider路径下的spider文件 scrapy edit 文件名字 编辑spider文件 局部函数: 新建一个爬虫 Scrapy genspider 爬虫名字 域名 运行爬虫 Scrapy crawl spider名字 Setting.py加入LOG_LEVEL = ‘WARNING’ 去除日志,只显示抓取结果 LOG_FILE = './log.log’ 将数据保存到log.log中 Item={} Item[‘name’]=Response.xpath().extract() extract():这个方法返回的是一个数组list,,里面包含了多个string,如果只有一个string,则返回[‘ABC’]这样的形式。 Item[‘name’]=Response.xpath().extract_first() extract

Python爬虫——B站

筅森魡賤 提交于 2020-02-22 15:55:55
import requests import re import traceback import json midlist = [ ] def write_filetitle ( filename ) : with open ( filename , "a" , encoding = 'utf-8-sig' ) as f : f . write ( "up_id" + "," + "up_name" + "," + "video_title" + "," + "video_av" + "," + "up_date" + "," + \ "watch_num" + "," + "subtitle_num" + "," + "comment_num" + "," + "up_type" + "," + "\n" ) #以下为STEP 1的代码 def gethtml ( url ) : """ 请求html文本数据 """ try : r = requests . get ( url ) r . raise_for_status ( ) r . encoding = r . apparent_encoding return r . text except : return "产生异常" def parsepage_step1 ( html ) : """ 解析html页面

[B10]爬虫课程02

柔情痞子 提交于 2020-02-22 15:01:53
数据解析 1.Xpath语法和lxml模块 #使用方式:使用//获取整个页面当中的元素,然后写标签名,然后再写谓词进行提取。 //div[@clas='abc'] 需要注意的知识点: 1./和//的区别:/只获取直接子节点,//可以获取子孙节点 2.contains:有时候某个属性包含多个值,可以使用cntains //div[contains(@class,'job_detail')] 3.谓词的下标是从1开始 使用lxml解析HTML代码: 1.解析html字符串:使用’lxml.etree.HTML’进行 htmlElement = etree . HTML ( text ) print ( etree . tostring ( htmlElement , encoding = 'utf-8' ) . decode ( 'utf-8' ) ) 2.解析html文件:使用’lxml.etree.parse’进行,如果这个函数默认使用xml解析器,需要自己创建html解析器。 htmlElement = etree . parse ( 'qingyunian.html' ) print ( etree . tostring ( htmlElement , encoding = 'utf-8' ) . decode ( 'utf-8' ) ) 实例 from lxml import

python爬虫步骤 (新手备学 )爬虫编程。

蹲街弑〆低调 提交于 2020-02-21 18:30:25
Python爬虫是用Python编程语言实现的网络爬虫,主要用于网络数据的抓取和处理,相比于其他语言,Python是一门非常适合开发网络爬虫的编程语言,大量内置包,可以C Python爬虫可以做的事情很多,如搜索引擎、采集数据、广告过滤等,Python爬虫还可以用于数据分析,在数据的抓取方面可以作用巨大! Python爬虫架构组成 1. URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器; 2. 网页下载器:爬取url对应的网页,存储成字符串,传送给网页解析器; 3. 网页解析器:解析出有价值的数据,存储下来,同时补充url到URL管理器。 Python爬虫工作原理 Python爬虫通过URL管理器,判断是否有待爬URL,如果有待爬URL,通过调度器进行传递给下载器,下载URL内容,并通过调度器传送给解析器,解析URL内容,并将价值数据和新URL列表通过调度器传递给应用程序,并输出价值信息的过程。 Python爬虫常用框架有: grab:网络爬虫框架(基于pycurl/multicur); scrapy:网络爬虫框架(基于twisted),不支持Python3; pyspider:一个强大的爬虫系统; cola:一个分布式爬虫框架; portia:基于Scrapy的可视化爬虫; restkit:Python的HTTP资源工具包

python爬虫(房天下)

倾然丶 夕夏残阳落幕 提交于 2020-02-21 16:52:19
房天下 import requests res = requests.get('http://esf.sz.fang.com/') #res.text from bs4 import BeautifulSoup soup = BeautifulSoup(res.text,'html.parser') domain = 'http://esf.sz.fang.com' for house in soup.select('.houseList dl'): if len(house.select('.title')) > 0: #print(house.select('.title')) #print(house.select('.title')[0].text.strip('\n')) #title = house.select('.title')[0].text.strip('\n') link = house.select('.title a')[0]['href'] url = domain + link #print(title) print(url) print("=====================================") http://esf.sz.fang.com/chushou/3_195350255.htm ====================

【python爬虫 系列】1.理解网络爬虫

落爺英雄遲暮 提交于 2020-02-20 23:15:23
第一节:理解网络爬虫 1.1网络爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。 当今最大的网络是互联网,最大的爬虫就是各类搜索引擎,包括谷歌丶百度等。网络爬虫就是按照一定规则去爬去人类所需要的信息的程序,主要通过对URL的请求来实现。一般来说,从搜索引擎这类爬虫搜索到的信息是非常宽泛的,而且夹杂着各种广告,信息是不纯粹的,也有可能不是我们需要的。这种时候,就需要一些聚焦于某一方面信息的爬虫来为我们服务,比方说,专门爬取某一类书的信息,在网站上浏览的时候,可能会有形形色色的图片和一些其他信息干扰我们,如果编写网络爬虫的话,就可以单单把自己想要的信息存储下来,以便数据分析,提取有用的信息。 像我们平时用的,谷歌浏览器、火狐浏览器、IE浏览器等,这些浏览器不是搜索引擎,主要的作用是:渲染我们的这些网页。 其实,这个浏览器和我们平时写的小爬虫最大的区别就是:我们平时的小爬虫抓取的网页源代码的不渲染的,直接把网页的源代码 HTML 展现出来,而浏览器是会加载 HTML 相关的 CSS、JS 等。爬虫是不会执行这些关联的文件。 1.2网络爬虫的原理 我们写了一个简单的网络爬虫,