beautifulsoup

its all about the logic: findall posts & the corresponding threads - on vbulletin

允我心安 提交于 2021-02-15 07:42:58
问题 fellow stackers, i am working to get the discourse of a user in vbulletin: Main goal: at the end we have all the threads (and discourses) where our demo-user is involved. on a sidenote: This means that we should keep in mind a nice presentation of the gathered results. For working out the logic that enables us to use this technique - on all Vbulletin (that run version 3.8xy). we choose a demo-page[which is only a example with an open board - visible to anybody without registration]. starting

its all about the logic: findall posts & the corresponding threads - on vbulletin

本秂侑毒 提交于 2021-02-15 07:41:49
问题 fellow stackers, i am working to get the discourse of a user in vbulletin: Main goal: at the end we have all the threads (and discourses) where our demo-user is involved. on a sidenote: This means that we should keep in mind a nice presentation of the gathered results. For working out the logic that enables us to use this technique - on all Vbulletin (that run version 3.8xy). we choose a demo-page[which is only a example with an open board - visible to anybody without registration]. starting

【Python】魔法方法之__call__,将对象当方法使用

*爱你&永不变心* 提交于 2021-02-13 20:27:30
1、问题 我刚开始接触爬虫的时候,只是看完了 python 的基础,对 python 的语法还没有一个很深入的了解,在使用 bs4 这个库的时候,对其中某些语法感到非常的惊奇,不明白是怎么实现的。 bs4 的官方文档中说到: find_all() 几乎是 Beautiful Soup 中最常用的搜索方法,所以我们定义了它的简写方法。 BeautifulSoup 对象和 tag 对象可以被当作一个方法来使用,这个方法的执行结果与调用这个对象的 find_all() 方法相同,下面两行代码是等价的: soup .find_all( "a" ) soup ( "a" ) 这里, soup 是一个 BeautifulSoup 对象, soup("a") 这很明显是把对象当方法使用了,这是怎么做到的呢? 2、实现 在 Python 中,除了用户定义的函数,调用运算符(即 ())还可以应用到其他对象上。内置的 callable() 函数用来判断一个对象能否调用。就是说,任何 Python 对象都可以表现得像函数一样,为此,只需实现实例方法 __call__ 。 来看一个简单的示例: class Sum : def __init__ (self, x, y) : self._x = x self._y = y def add (self) : return self._x + self._y

Python数据可视化:网易云音乐歌单

喜夏-厌秋 提交于 2021-02-13 18:54:13
网易云音乐2018年度听歌报告—遇见你,真好。 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了。 小F也是去凑凑热闹,瞅了一波自己的年度听歌报告。 那么你在云村又听了多少首歌,听到最多的歌词又是什么呢? 2018年你的年度歌手又是谁,哪些又是你最爱的歌呢? 不过相比去年,我的票圈并没有很多发自己年度报告的朋友。 不得不说,版权之争开始,网易云音乐似乎就在走下坡路。 很多喜欢的歌听不了,这应该是大家共同的痛点。 最大的印象就是周董的歌,在愚人节时下架了,原以为只是个玩笑,不想却是真的。 本次通过对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析。 可视化库不采用pyecharts,来点新东西。 使用matplotlib可视化库,利用这个底层库来进行可视化展示。 / 01 / 网页分析 01 歌单索引页 选取华语热门歌单页面。 获取歌单播放量,名称,及作者,还有歌单详情页链接。 本次一共获取了1302张华语歌单。 02 歌单详情页 获取歌单详情页信息,信息比较多。 有歌单名,收藏量,评论数,标签,介绍,歌曲总数,播放量,收录的歌名。 这里歌曲的时长、歌手、专辑信息在网页的iframe中。 需要用selenium去获取信息,鉴于耗时过长,小F选择放弃... 有兴趣的小伙伴,可以试一下哈... / 02 / 数据获取 01 歌单索引页 from bs4 import

python爬虫-豆瓣电影的尝试

橙三吉。 提交于 2021-02-13 16:41:06
一、背景介绍 1. 使用工具   Pycharm 2. 安装的第三方库   requests、BeautifulSoup   2.1 如何安装第三方库   File => Settings => Project Interpreter => + 中搜索你需要的插件    3. 可掌握的小知识   1. 根据url 获取页面html内容   2. 解析html内容,选出自己需要的内容 二、代码示例   网页的样子是这个,获取排行榜中电影的名字 1 import requests 2 from bs4 import BeautifulSoup 3 4 def getHtml(): 5 url = ' https://movie.douban.com/chart ' 6 # Get获取改页面的内容 7 html = requests.get(url) 8 # 用lxml解析器解析该页面的内容 9 soup = BeautifulSoup(html.content, " lxml " ) 10 getFilmName(soup) 11 # print(soup) 12 13 14 def getFilmName(html): 15 for i in html.find_all( ' a ' , class_= " nbg " ): 16 img = i.find( ' img ' ) 17

Python 爬取豆瓣TOP250实战

邮差的信 提交于 2021-02-13 14:27:33
学习爬虫之路,必经的一个小项目就是爬取豆瓣的TOP250了,首先我们进入TOP250的界面看看。 可以看到每部电影都有比较全面的简介。其中包括电影名、导演、评分等。 接下来,我们就爬取这些数据,并将这些数据制成EXCEL表格方便查看。 首先,我们用requests库请求一下该网页,并返回他的text格式。 请求并返回成功! 接下来,我们提取我们所需要的网页元素。 点击“肖申克救赎”的检查元素。 发现它在div class = "hd" -> span class = "title"里,所以我们import beautifulsoup,来定位该元素。 同时,用相同的方法定位电影的评价人数和评分以及短评。 代码如下: soup = BeautifulSoup(res.text, ' html.parser ' ) names = [] scores = [] comments = [] result = [] # 获取电影的所有名字 res_name = soup.find_all( ' div ' ,class_= " hd " ) for i in res_name: a = i.a.span.text names.append(a) # 获取电影的评分 res_scores = soup.find_all( ' span ' ,class_= ' rating_num ' )

Python爬虫实例:爬取豆瓣Top250

我们两清 提交于 2021-02-13 14:03:22
入门第一个爬虫一般都是爬这个,实在是太简单。用了 requests 和 bs4 库。 1、检查网页元素,提取所需要的信息并保存。这个用 bs4 就可以,前面的文章中已经有详细的用法阐述。 2、找到下一个 url 地址。本例中有两种方法,一是通过 url 的规则,本例中通过比较发现,只要更改 url 中的 start 参数值就可以;二是通过下一个页的标签获取下一页的 url。代码中采用了第一种方法。 3、判断退出条件,爬虫不可能无限制循环下去。 在这个最简单的示例中,实现以上三步一个爬虫就完成了。简单到不想做其他说明,直接看代码吧。 """ 爬取豆瓣电影Top250 """ import os import re import time import requests from bs4 import BeautifulSoup def download(url, page): print (f " 正在爬取:{url} " ) html = requests.get(url).text # 这里不加text返回<Response [200]> soup = BeautifulSoup(html, ' html.parser ' ) lis = soup.select( " ol li " ) for li in lis: index = li.find( ' em ' ).text

练习抓取淘宝商品信息

怎甘沉沦 提交于 2021-02-13 11:53:38
##准备 查看淘宝的页面是不是静态页面,结果是静态页面。 想要抓取的是淘宝搜索某个商品的信息,所以要找到淘宝的搜索接口,经过观察可以看到接口可以这样解决: word = '书包' url = 'https://s.taobao.com/search?q=' + word 其实抓取淘宝主要是想加强自己对正则表达式的理解与运用的,于是决定用requests+re来完成此次练习。 ##调试 ####抓取网页 调试的第一步获取网页的源代码就遇到了问题,真是不幸。于是开始痛苦的调试过程: 在头部信息中添加浏览器信息 结果:失败 在头部信息中添加referer 结果:失败 在头部信息中添加cookie 结果:返回结果有了变化,于是很高兴的去把requests发起的请求改成session会话发起的请求,结果最后发现虽然和以前返回的内容变了,但源代码还是错误的,简直崩溃,不知道用了什么反爬虫技术。 终极武器----selenium 用这个直接调用真实的浏览器对其访问,终于不会出错了(这还是要出错,真的是无fuck可说了),但这个要启动浏览器,速度可能会很慢,所以我把源代码保存到了本地,避免重复访问浪费时间。 保存网页 保存的话用二进制的形式保存,不会出现一些乱七八糟的编码错误,而且用浏览器打开的时候可以显示中文,但用Python读取的时候,显示不出来中文,需要解码才能显示中文

Ubuntu 安装 Beautifulsoup4 版本不兼容问题

人盡茶涼 提交于 2021-02-12 09:53:03
最近学习linux下的python,安装了个ubuntu最新的系统ubuntu-17.10.1-desktop-amd64,说是支持python最新的版本。在安装bs4的时候,报错了。错误如下 , 上网查之,收到最多的是 然后我发现去哪找这个2to3.py啊?????查找发现这个文件在usr/bin下面, 下面截图来自知乎 遂执行下图命令, 执行完之后验证之 来源: oschina 链接: https://my.oschina.net/u/4350253/blog/4224060

python3.7.3安装beautifulsoup4出现版本不兼容的问题

人盡茶涼 提交于 2021-02-12 09:35:58
今天想安装一个beautifulsoup4,结果一直出错,好多教程总是有各种坑……找了很多个教程,为了记录方法也为了分享给大家,简单些一个。但是是真真不想再费劲写一遍了……直接贴链接,亲测有效,但是底下这个ps2我是真没看懂。 本人真心是计算机菜鸟,如有错误还请大家热心指出。 教程链接:https://cloud.tencent.com/developer/news/321126 但是这里边也有一处错误,我是看了好多个教程确定出来的,错误也是五花八门,-_-||,可能是笔误吧,但是错误实在太多了,而且我就是个计算机大白(小白不足以形容……),好多教程写的太简略了,看的我想撞墙。废话少说贴图(如下),箭头处少了一个空格: 按照这个教程走完后,出现了版本不兼容的错误,如下: ----------------------------------------------------------------------------------------------------------- >>> from bs4 import BeautifulSoup Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\python\Python_install\lib\bs4\__init__