python之爬取练习
练习要求爬取http://yuedu.anyv.net/网址的最大页码数和文章标题和链接
网址页面截图:


代码截图:


完整代码:
根据网页显示页码的方式,爬取的所有页码中倒数第二个页码是最大页码。
import urllib.request
from bs4 import BeautifulSoup
import time
import requests
import re
import itertools
import io
import sys
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
class DrawStu():
def __init__(self):
self.baseurl='http://yuedu.anyv.net/';
pass;
#实现爬取api
def common_draw(self,url):
response=urllib.request.urlopen(url);#注意 写在内部以后 变成了形参
html=response.read();#进行乱码处理
code_of_html=html.decode('gbk');#进行解码
doc=BeautifulSoup(html);
return doc; #爬取总页数
def get_page_size(self):
_doc=self.common_draw(self.baseurl);
pagecxt=_doc.find('div',{'id':'content-pagenation'}).findAll('a');#获取当前a个数
size=len(pagecxt);
maxsize=pagecxt[size-].text;#获取倒数第二个进行获取里面值就是最大值
maxsize=int(maxsize)
return maxsize; #爬取文章标题和链接
def get_title(self):
r=requests.get("http://yuedu.anyv.net/")
r.encoding=r.apparent_encoding
result=r.text
bs=BeautifulSoup(result,'html.parser')
pagecxt=bs.find('div',{'class':'content'}).findAll('div',{'class':'image group'});
for x in pagecxt:
pageinfo=x.find('div',{'class':'grid news_desc'});
title=pageinfo.find('h3').find('a').text;
print("文章标题:")
print(title)
link=pageinfo.find('h3').find('a').get('href');
print("文章链接:")
print(link) D=DrawStu();
if __name__ == '__main__':
size=D.get_page_size();
print("总页数:")
print(size)
title=D.get_title();
print(title)
运行结果截图:


python之爬取练习的更多相关文章
- 大神:python怎么爬取js的页面
大神:python怎么爬取js的页面 可以试试抓包看看它请求了哪些东西, 很多时候可以绕过网页直接请求后面的API 实在不行就上 selenium (selenium大法好) selenium和pha ...
- python连续爬取多个网页的图片分别保存到不同的文件夹
python连续爬取多个网页的图片分别保存到不同的文件夹 作者:vpoet mail:vpoet_sir@163.com #coding:utf-8 import urllib import ur ...
- python定时器爬取豆瓣音乐Top榜歌名
python定时器爬取豆瓣音乐Top榜歌名 作者:vpoet mail:vpoet_sir@163.com 注:这些小demo都是前段时间为了学python写的,现在贴出来纯粹是为了和大家分享一下 # ...
- python大规模爬取京东
python大规模爬取京东 主要工具 scrapy BeautifulSoup requests 分析步骤 打开京东首页,输入裤子将会看到页面跳转到了这里,这就是我们要分析的起点 我们可以看到这个页面 ...
- Python爬虫 - 爬取百度html代码前200行
Python爬虫 - 爬取百度html代码前200行 - 改进版, 增加了对字符串的.strip()处理 源代码如下: # 改进版, 增加了 .strip()方法的使用 # coding=utf-8 ...
- Python+Selenium爬取动态加载页面(2)
注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...
- Python+Selenium爬取动态加载页面(1)
注: 最近有一小任务,需要收集水质和水雨信息,找了两个网站:国家地表水水质自动监测实时数据发布系统和全国水雨情网.由于这两个网站的数据都是动态加载出来的,所以我用了Selenium来完成我的数据获取. ...
- python 3 爬取百度图片
python 3 爬取百度图片 学习了:https://blog.csdn.net/X_JS612/article/details/78149627
- 用Python爬虫爬取广州大学教务系统的成绩(内网访问)
用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code ...
- 使用Python爬虫爬取网络美女图片
代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...
随机推荐
- tesseract-OCR + pytesseract安装
1. tesseract-OCR下载安装 地址:https://digi.bib.uni-mannheim.de/tesseract/ 选择一个版本下载,下载完成点击**.exe进行安装,若无其他需求 ...
- flex招式心法
flex布局绝对是我们平常在布局中用的最多的一个属性,我们来看看它在can i use中的浏览器支持度:(截止到2019/11/16) 挖藕,凹森!支持度居然这么好,好到连ie也能支持大部分的flex ...
- form表单input回车提交问题
问题:文本框输入完成后点击回车页面刷新问题出在form上,当表单中只有一个文本框的时候获取焦点并点击回车之后会提交表单内容,就会发生刷新事件. 解决方法: 1.增加一个隐藏的输入框 <input ...
- angular cli 使用echarts
1.安装库 npm install typings echarts --global npm install ngx-echarts --save npm install @types/echarts ...
- MySQL 字符串分隔成行&子串统计
利用help_topic表把字符串转换成行(分隔符号',') ),) as `id` FROM mysql.`help_topic`; 统计字符串每个子串出现次数(分隔符号',') ),) AS `s ...
- JMS消息中间件
1.什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信.对于消息中 ...
- ES6.x
类 class Animal{ constructor(name){ this.name=name } Spack(){ console.log(name) } } class Dog extends ...
- Spring学习的第三天
问题分析:在刚开始进行银行转账案例时,会获取四个连接,分别是查询接入.转出账户.更新转入.转出账户.这样会使转账不同步,如果某一处出现异常,前面的代码执行了,而后面的更新却没执行,导致一个账户加钱而另 ...
- java之简单类对象实例化过程
假设现在有这么一个类: public class Person{ public Person(){} String name = "tom"; int age = 1; int s ...
- C语言程序设计100例之(18):火柴棒等式
例18 火柴棒等式 用n根火柴棍,可以拼出多少个形如“A+B=C”的等式?等式中的A.B.C是用火柴棒拼出的整数(若该数非零,则最高位不能是0).用火柴棒拼数字0~9的拼法如图1所示. 图1 用 ...