pyquery

爬虫常用库之pyquery 库

ぐ巨炮叔叔 提交于 2020-01-02 13:48:11
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,我个人写过的一些抓取网页数据的脚本就是用它来解析html获取数据的。他的官方文档地址是:http://packages.python.org/pyquery/。今天重新看了一遍整个文档,把它的一些使用方法整理了一下,做个记录。 使用方法 from pyquery import PyQuery as pq 1.可加载一段HTML字符串,或一个HTML文件,或是一个url地址, 例: d=pq("<html><title>hello</title></html>") d=pq(filename=path_to_html_file) d=pq(url='http://www.baidu.com')注意:此处url似乎必须写全 2.html()和text() ——获取相应的HTML块或文本块, 例: p=pq("<head><title>hello</title></head>") p('head').html()#返回<title>hello</title> p('head').text()#返回hello 3.根据HTML标签来获取元素, 例: d=pq('<div><p>test 1</p><p>test 2</p></div>') d('p')#返回[<p>,<p>] print d('p')#返回<p

Python中PyQuery库的使用

谁说我不能喝 提交于 2020-01-02 13:47:53
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,我个人写过的一些抓取网页数据的脚本就是用它来解析html获取数据的。 它的官方文档地址是: http://packages.python.org/pyquery/ 。今天重新看了一遍整个文档,把它的一些使用方法整理了一下,做个记录。 使用方法 from pyquery import PyQuery as pq 1.可加载一段HTML字符串,或一个HTML文件,或是一个url地址, 例: d=pq("<html><title>hello</title></html>") d=pq(filename=path_to_html_file) d=pq(url='http://www.baidu.com')注意:此处url似乎必须写全 2.html()和text() ——获取相应的HTML块或文本块, 例: p=pq("<head><title>hello</title></head>") p('head').html()#返回<title>hello</title> p('head').text()#返回hello 3.根据HTML标签来获取元素, 例: d=pq('<div><p>test 1</p><p>test 2</p></div>') d('p')#返回[<p>,<p>] print d('p')

Python爬虫实战:爬取股票信息

可紊 提交于 2019-12-28 15:47:13
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 本次选题是先写好代码再写的文章,绝对可以用到页面元素解析,并且还需要对网站的数据加载有一定的分析,才能得到最终的数据,并且小编找的这两个数据源无 ip 访问限制,质量有保证,绝对是小白练手的绝佳之选。 郑重声明: 本文仅用于学习等目的。 分析 首先要爬取股票数据,肯定要先知道有哪些股票吧,这里小编找到了一个网站,这个网站上有股票的编码列表:https://hq.gucheng.com/gpdmylb.html 。 打开 Chrome 的开发者模式,将股票代码一个一个选出来吧。具体过程小编就不贴了,各位同学自行实现。 我们可以将所有的股票代码存放在一个列表中,剩下的就是找一个网站,循环的去将每一只股票的数据取出来咯。 这个网站小编已经找好了,是同花顺,链接: http://stockpage.10jqka.com.cn/000001/ 。 想必各位聪明的同学已经发现了,这个链接中的 000001 就是股票代码。 我们接下来只需要拼接这个链接

爬虫入门二(数据解析)

倖福魔咒の 提交于 2019-12-21 12:25:39
1、数据解析 简介 1、什么是数据解析,数据解析可以干什么 - 概念:就是将一组数据中的局部数据进行提取 - 作用:使用来实现聚焦爬虫 2、数据解析的通用原理 - 问题:html展现的数据可以存储在哪里? - 标签之中 - 属性中 1、标签定位 2、取文本或者取属性 正常解析两种方法 需求:http://duanziwang.com/category/%E6%90%9E%E7%AC%91%E5%9B%BE/,将该网站中的图片数据进行爬取 如何对图片(二进制)数据进行爬取 方法一:requests import requests headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' } url = 'http://duanziwang.com/usr/uploads/2019/02/3334500855.jpg' pic_data = requests.get(url=url,headers=headers).content #content返回的是二进制类型的响应数据 with open('1.jpg','wb') as fp: fp.write(pic

解析库 pyquery 入门

陌路散爱 提交于 2019-12-20 12:25:32
引言 前面一篇我们介绍了 Beautiful Soup 中可以使用 CSS 选择器,但是好像他的 CSS 选择器并没有想像中的强大。 本篇就介绍一个对 CSS 选择器更加友好的类库 —— pyquery 。它在语法上更加贴和 JQuery ,估计会成为各位后端开发人员的福音。 首先,还是先敬上各种官方地址: 官方文档: https://pyquery.readthedocs.io/en/latest/ PyPI: https://pypi.org/project/pyquery/ Github: https://github.com/gawel/pyquery 有问题,找官方,这句话是肯定不会错滴~~ 初始化 首先,各位同学需要确保已经安装过 pyquery ,没有安装过的朋友可以翻一翻前面的前置准备,小编已经介绍过安装方式。 先来看一个简单的初始化的示例(还是使用上一篇的 HTML ,懒人真的没救了): from pyquery import PyQuery html = ''' <html><head><title>The Dormouse's story</title></head> <body> <p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there

Convert unicode with utf-8 string as content to str

≯℡__Kan透↙ 提交于 2019-12-20 10:04:43
问题 I'm using pyquery to parse a page: dom = PyQuery('http://zh.wikipedia.org/w/index.php', {'title': 'CSS', 'printable': 'yes', 'variant': 'zh-cn'}) content = dom('#mw-content-text > p').eq(0).text() but what I get in content is a unicode string with utf-8 encoded content: u'\xe5\xb1\x82\xe5\x8f\xa0\xe6\xa0\xb7\xe5\xbc\x8f\xe8\xa1\xa8...' how could I convert it to str without lost the content? to make it clear: I want conent == '\xe5\xb1\x82\xe5\x8f\xa0\xe6\xa0\xb7\xe5\xbc\x8f\xe8\xa1\xa8' not

python爬取豆瓣影评并写入文件

纵饮孤独 提交于 2019-12-19 03:04:04
1.获得豆瓣影评接口 按浏览器F12调试,点开参数,查看url一栏: 所有评论:url:https://movie.douban.com/subject/27119724/comments?status=P 某一页的评论:url: https://movie.douban.com/subject/27119724/comments?start=40&limit=20&sort=new_score&status=P 对比第一条和第二条就可以得出规律,key:start表示从哪一条评论开始,key:limit表示每次展示多少条数据。所以可以用代码实现request请求,获取相应页面的数据。 2.用到了pyquery库来解析返回的html数据 :pip install pyquery 3.在print()评论的时候,出现了乱码,所以加上这一行代码可以解决: sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding=‘gb18030’) 4.代码实现: #coding=utf-8 import requests import pyquery import io import sys import time import random #cmd不能很好地兼容utf8 sys . stdout = io . TextIOWrapper (

What’s the most forgiving HTML parser in Python?

﹥>﹥吖頭↗ 提交于 2019-12-10 17:18:50
问题 I have some random HTML and I used BeautifulSoup to parse it, but in most of the cases (>70%) it chokes. I tried using Beautiful soup 3.0.8 and 3.2.0 (there were some problems with 3.1.0 upwards), but the results are almost same. I can recall several HTML parser options available in Python from the top of my head: BeautifulSoup lxml pyquery I intend to test all of these, but I wanted to know which one in your tests come as most forgiving and can even try to parse bad HTML. 回答1: They all are.

requests、pyquery库的安装

帅比萌擦擦* 提交于 2019-12-07 15:05:32
一、安装requests库   在 windows 系统下,只需要输入命令 pip install requests ,即可安装。 在 linux 系统下,只需要输入命令 sudo pip install requests ,即可安装。1. 下载requests 打开这个网址http://www.lfd.uci.edu/~gohlke/pythonlibs 在这个网站上面有很多 python 的第三方库文件,我们按 ctrl+f 搜索很容易找到 requests 。如下图,           点击那个 whl 文件然后下载下来。 2. 将whl文件下载下来后,将文件重命名,将后缀名从 .whl 改为 .zip ,然后解压文件,我们可以得到两个文件夹,如下图,         我们将第一个文件夹,也就是 requests 文件夹复制到 python 的安装目录下的 lib 目录下。 3. 到这里,requests 已经安装完毕,我们可以输入 import requests 命令来试试是否安装成功,        如上图所示,import requests 没有报错,说明 requests 已经成功安装了。二、安装pyquery库    1.首先,你要保证你windows上是装有python的。    2.安装pip和其他必要包     (1)下载pip包,可以去pip官网下载(点击

Entire JSON into One SQLite Field with Python

痞子三分冷 提交于 2019-12-07 11:59:10
问题 I have what is likely an easy question. I'm trying to pull a JSON from an online source, and store it in a SQLite table. In addition to storing the data in a rich table, corresponding to the many fields in the JSON, I would like to also just dump the entire JSON into a table every time it is pulled. The table looks like: CREATE TABLE Raw_JSONs (ID INTEGER PRIMARY KEY ASC, T DATE DEFAULT (datetime('now','localtime')), JSON text); I've pulled a JSON from some URL using the following python code