Python3抓取糗百、不得姐

​点击关注 异步图书,置顶公众号

每天与你分享 IT好书 技术干货 职场知识


重要提示1:本文所列程序均基于Python3.6,低于Python3.6的Python版本可能无法运行.
重要提示2:因所抓取的网站可能随时更改展示内容,因此程序也需及时跟进.
重要提示3:本程序仅供学习,不能拿去做坏事.​

起步

1.安装Python 3.6;
2.安装以下库:

9ccc0ca9gy1frekr4rrr4j20mj01z0sm.jpg

主要思路

整个程序,按照下面的步骤:

1.获取要爬取页面的URL地址(可以是分页地址,可以在程序里面模拟分页);
2.通过requests(一个封装了urllib3的网络库,简化了很多网络请求的东西)下载上面URL地址的内容到内存(以前的方式是保存临时文件);
3.用BeautifulSoup(一个解析HTML的库)来读取第二步中保存在内存中的内容,并解析出我们要的主要内容部分;
4.保存到数据库或展示(特别说明:本示例程序不包含数据库部分),程序最终会输出多条json数据(已经包含了来源网站(自己定义的),创建时间等)

上述部分体现在代码中,就是如下:

首先在Main.py中,定义:

9ccc0ca9gy1frekrd3ltwj20me03x74a.jpg

​用来格式化不得姐获取到的数据,下面还要定义一个Qsyk来处理来自糗事百科的数据:

9ccc0ca9gy1frekrkkj1bj20mg03yweh.jpg

代码中还有一个Kanqu.com的抓取处理,这里就不罗列了,这几个唯一的区别就是:调用common.formatContent时,传递的第二个参数不一样,第二个参数为要抓取的内容(HTML)的class.

CommonGrab中依赖了UserUtils.py中的代码.

下面是CommonGrab的定义,在CommonGrab中主要做了两件事:

  1. 抓取网页内容,保存到内存;
  2. 解析HTML内容(使用BeautifulSoup)
  3. 将数据新增到数据库中.(不新增数据库到数据库中.)

代码如下:

9ccc0ca9gy1freks8agdpj20mj0mbq58.jpg

之后就是把上述的几部分组合起来.

运行

运行部分的代码如下,主要就是调用了上述几部分的代码:

9ccc0ca9gy1frekshnol8j20mh0kp764.jpg

源码下载

CSDN:
https://download.csdn.net/download/dcxy0/9835268
Coding.net:
https://coding.net/u/pruidong/p/Python3GetQsbkBdj/git

文件:

main.py: 运行
UserUtils.py:工具​


本文来源于异步社区,作者:dcxy,作品《Python3抓取糗百、不得姐》,未经授权,禁止转载。

9ccc0ca9gy1frcdobu7f5g20hs01pt93.gif

推荐阅读

2018年5月新书书单(文末福利)

2018年4月新书书单

异步图书最全Python书单

一份程序员必备的算法书单

第一本Python神经网络编程图书

9ccc0ca9gy1fqyf4q8tctj209k09k744.jpg

​长按二维码,可以关注我们哟

每天与你分享IT好文。


在“异步图书”后台回复“关注”,即可免费获得2000门在线视频课程;推荐朋友关注根据提示获取赠书链接,免费得异步e读版图书一本。赶紧来参加哦!

点击阅读原文,查看更多

阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

halcon边缘检测的方法及各种方法的适用范围

目录一、边缘提取二、BLOB分析检测三、赃物检测一、边缘提取 1、设置ROI兴趣区域 2、快速二值化,并连接相邻区域。 这样做的目的是进一步减少目标区域,通过二值化将目标区域大概轮廓提取出来 3、提取最接近目标区域的轮廓 常用函数有boundary&#xff0…

Oracle优化-表设计

前言  绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer、Share Pool、Redo Log Buffer等内存模块配置不合理,I/O争用,CPU争用等DBA职责范围上。所以除非是面对一个业已完成不可变更的系…

Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法...

升级至win10 最新版本10.0.17134,远程桌面连接Window Server时报错信息如下: 出现身份验证错误,要求的函数不正确,这可能是由于CredSSP加密Oracle修正。 解决方法: 运行 gpedit.msc 本地组策略: 计算机配置…

CMM2

原文出处:http://hi.baidu.com/seaweaver/blog/item/e80e7af427f674d9f2d3854a.html CMM2的六个KPA 1、需求管理 (RM,Requirement Management) 2、软件项目计划 (SPP,Software Project Planning&#…

查看linux系统核数

查看linux系统核数: grep ^processor /proc/cpuinfo | wc -l转载于:https://www.cnblogs.com/myyan/p/5822368.html

Rsyslog 日志相关内容

[rootserver vusers_home]# rpm -ql rsyslog|more ###.so结尾为模块,模块有分im为输入模块,om 为输出模块/etc/logrotate.d/syslog/etc/pki/rsyslog/etc/rc.d/init.d/rsyslog/etc/rsyslog.conf/etc/rsyslog.d/etc/sysconfig/rsyslog/lib64/rsyslog…

MFC导出对话框类DLL的实现

1.新建基于对话框的应用程序 2.新建MFC DLL工程 3.选择MFC DLL 4.选择扩展Dll选项(重要!!!) 5.为Dll工程添加一个MFC类,基类为CDialogEx 6.Dll新建的MFC 类中添加resource.h防止编译出错…

中国如何引进CMM评估,促进软件产业发展

北京软件行业协会 (本文转载自软件工程专家网www.21cmm.com) 一、CMM的含义及作用   CMM(软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅 隆大学的软件工程研究所(SEI&a…

关于游戏平衡性——王者荣耀英雄伤害数值参考

收集王者荣耀各个英雄的装备对技能增加的百分比,这样的主要目的为保证游戏的平衡性。对于技能主要包括:血量、物理攻击、法术攻击、物理穿透、法术穿透、暴击等。关于各个装备,已经列成一张excel表格,在这里不再详细描述表格。在这…

Swift-setValuesForKeysWithDictionary

重写 setValuesForKeysWithDictionary 那么字典中可以有的字段在类中没有对应属性 class Person : NSObject {var age :Int 0 // 重写 setValuesForKeysWithDictionary 那么字典中可以有的字段在类中没有对应属性override func setValuesForKeysWithDictionary(keyedValues…

hdu 1269 迷宫城堡(trajan判环)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1269 题意&#xff1a;略 题解&#xff1a;trajan模版直接求强连通分量。 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N 1e4 10; const i…

Arithmetic图像处理halcon算子持续更新

目录abs_diff_imageabs_imageacos_imageadd_imageasin_imageatan2_imageatan_imagecos_imagediv_imageexp_imagegamma_imageinvert_imagelog_imagemax_imagemin_imagemult_imagepow_imagescale_imagesin_imagesqrt_imagesub_imagetan_imageabs_diff_image 功能&#xff1a;计算…

身于“乱世”,我们程序员应该如何打算?

今天看了这篇文章&#xff0c; 发现自己也有点生处乱世&#xff0c;不平之感&#xff0c;但是文章的朴实却让我有了一个良好的反省&#xff0c;特此转载 分类&#xff1a; 项目管理 2011-09-04 00:58 770人阅读 评论(12) 收藏 举报 不仅要低头拉车&#xff0c;还要抬头看路。…

Activity的启动流程

Activity的启动流程 努力工作 自己平时工作接触的frameworks代码比较多&#xff0c;但真正理解的很有限&#xff0c;一直在努力分析。。我主要还是用补丁的形式来看 core/java/android/app/Activity.java | 6 core/java/android/app/ActivityManagerNative.jav…

es6--箭头函数

基本用法 ES6允许使用“箭头”&#xff08;>&#xff09;定义函数。 var f v > v; 上面的箭头函数等同于&#xff1a; var f function(v) {return v; }; 如果箭头函数不需要参数或需要多个参数&#xff0c;就使用一个圆括号代表参数部分。 var f () > 5; // 等同于…

halcon Bit图位像素处理算子,持续更新

目录bit_andbit_lshiftbit_maskbit_notbit_orbit_rshiftbit_slicebit_xorbit_and 功能&#xff1a;输入图像的所有像素的逐位与。 bit_lshift 功能&#xff1a;图像的所有像素的左移。 bit_mask 功能&#xff1a;使用位掩码的每个像素的逻辑与。 bit_not 功能&#xff1…

NYOJ题目839合并

--------------------------- AC代码&#xff1a; 1 import java.util.Scanner;2 3 public class Main {4 5 public static void main(String[] args) {6 7 8 Scanner scnew Scanner(System.in);9 10 int timessc.nextInt(); 11 …

指针的魅力

序 指针说&#xff1a;love me&#xff0c;love me&#xff01; 但是他对指针说&#xff1a;I hate u&#xff0c;I hate u&#xff01; …… 指针仅仅是作为指针&#xff0c;我们可以把它当做有用的工具&#xff0c;为我们提供便利与好处。说起工具不得不让我想起一样东西—…

python多进程

2019独角兽企业重金招聘Python工程师标准>>> python多进程 进程简介 进程是程序在计算机上的一次执行活动。当你运行一个程序&#xff0c;你就启动了一个进程。显然&#xff0c;程序是死的(静态的)&#xff0c;进程是活的(动态的)。进程可以分为系统进程和用户进程。…

halcon彩色图像颜色处理算子,持续更新

目录apply_color_trans_lutcfa_to_rgbtrans_to_rgbclear_color_trans_lutcreate_color_trans_lutgen_principal_comp_translinear_trans_colorprincipal_comprgb1_to_grayrgb3_to_graytrans_from_rgbapply_color_trans_lut 功能&#xff1a;申请使用颜色查找表。 cfa_to_rgb …