python爬虫案例,python爬虫案例教程

http://www.itjxue.com  2023-01-22 18:36  来源:未知  点击次数: 

如何使用python爬虫如何爬取米思米案例库?请大神来帮忙1

背景:首先对于登录页面,你作为普通人类,是怎么需要输入账号和密码,才能登录后,查看到页面的。

用selenium:那么就是让selenium去定位到对应的账号输入框和密码输入框,分别输入账号和密码,再定位到登录按钮,点击登录。即可模拟人类去登录,登录后页面刷新,看到你要的内容。

你要处理的内容,属于爬虫领域。

所以你最好先去了解背景知识:

先去搞懂爬虫基础:

前言 · 爬取你要的数据:爬虫技术

再去了解如何用Python写:

如何用Python写爬虫

最后再参考

心得和总结 · Selenium知识总结

估计会用到find_element_by_id或find_element_by_xpath等方面的函数去定义你的输入框或按钮。

从零开始学Python爬虫(四):正则表达式

Regular Expression, 正则表达式, 种使 表达式的 式对字符串进 匹配的语法规则。

我们抓取到的 源代码本质上就是 个超 的字符串, 想从 提取内容。 正则再合适不过了。

正则的优点: 速度快, 效率 , 准确性 正则的缺点: 新 上 难度有点 。

不过只要掌握了正则编写的逻辑关系, 写出 个提取 内容的正则其实并不复杂

正则的语法: 使 元字符进 排列组合 来匹配字符串

在线测试正则表达式网址:

元字符: 具有固定含义的特殊符号 常 元字符:

量词: 控制前 的元字符出现的次数

贪婪匹配和惰性匹配

这两个要着重的说 下,因为我们写爬 的最多的就是这个惰性匹配。

先看案例

那么接下来的问题是, 正则我会写了, 怎么在python程序中使 正则呢?答案是re模块

re模块中我们只需要记住这么 个功能就 够我们使 了。

下面一个案例,是练习用正则表达式提取豆瓣电影top250的数据并保存,一起来学一下吧。

什么是对中国大学进行排名的爬窗系统

本教程主要参考中国大学慕课的 Python 网络爬虫与信息提取,为个人学习笔记。

在学习过程中遇到了一些问题,都手动记录并且修改更正,保证所有的代码为有效。且结合其他的博客总结了一些常见问题的解决方式。

本教程不商用,仅为学习参考使用。如需转载,请联系本人。

Reference

爬虫 MOOC

数据分析 MOOC

廖雪峰老师的 Python 教程

功能描述

输入:大学排名URL链接

输出:大学排名信息的屏幕输出(排名,大学名称,总分)

技术路线:requests‐bs4

定向爬虫:仅对输入 URL 进行爬取,不扩展爬取

定向爬虫可行性

1.确定要爬取的信息是否写在 HTML 的页面代码中

2.没有 robots 协议,即没有爬虫的限制

程序的结构设计

步骤1:从网络上获取大学排名网页内容 getHTMLText()

步骤2:提取网页内容中信息到合适的数据结构 fillUnivList()

步骤3:利用数据结构展示并输出结果 printUnivList()

程序编写

先使用异常处理形式爬取网站,修改编码并返回 url 的内容。(requests)

然后找到 tbody 标签,在tbody孩子标签中挨个检索 tr(for循环),如果类型和 tag 一致,则查找 tr 中的 td 标签,以二维列表的数据结构存储信息 [[“1”, “清华大学”, “北京”], [“2”, “北京大学”, “北京”], …]。(BeautifulSoup)

新版的排名的大学名字封装在 a 标签中,所以这里需要具体到查找属性为 ‘name-cn’ 的 a 标签并存储其字符串,即大学的中文名称。相应代码只需要做细微修改即可

最后格式化输出信息。

格式化输出回顾:

源代码

import requests

from bs4 import BeautifulSoup

import bs4

def getHTMLText(url):

try:

r = requests.get(url, timeout=30)

r.raise_for_status()

r.encoding = r.apparent_encoding

return r.text

except:

return ""

def fillUnivList(ulist, html):

soup = BeautifulSoup(html, "html.parser")

for tr in soup.find('tbody').children: #先检索到tbody标签

if isinstance(tr, bs4.element.Tag):

tds = tr('td') #查询tr中的td标签,等价于tr.find_all('td')

# 新版的排名封装在a标签中,所以这里需要具体到查找属性为'name-cn'的a标签并存储其字符串,即大学的中文名称

a = tr('a','name-cn')

ulist.append([tds[0].string.strip(),a[0].string.strip(),tds[2].text.strip(),tds[4].string.strip()]) # 使用二维列表存储信息

def printUnivList(ulist, num):

print("{:^10}\t{:^6}\t{:^10}".format("排名","学校名称","总分")) #取10/6/10位中间对齐

for i in range(num):

u = ulist[i]

print("{:^10}\t{:^6}\t{:^10}".format(u[0], u[1], u[3]))

def main():

uinfo = []

url = ""

html = getHTMLText(url)

fillUnivList(uinfo, html)

printUnivList(uinfo, 20) # 20 univ

main()

登录后复制

?

程序优化

中文对齐问题的原因:

当中文字符宽度不够时,采用西文字符填充;中西文字符占用宽度不同。

中文对齐问题的解决:

采用中文字符的空格填充 chr(12288)

def printUnivList(ulist, num):

tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"

# {3}表示需要填充时使用format的第三个变量进行填充,即使用中文空格

print(tplt.format("排名", "学校名称", "总分", chr(12288)))

for i in range(num):

u = ulist[i]

print(tplt.format(u[0], u[1], u[3], chr(12288)))

登录后复制

优化后的程序如下:

# -*- coding:utf-8 -*-

import requests

from bs4 import BeautifulSoup

import bs4

def getHTMLText(url):

try:

r = requests.get(url, timeout=30)

r.raise_for_status()

r.encoding = r.apparent_encoding

return r.text

except:

return ""

def fillUnivList(ulist, html):

soup = BeautifulSoup(html, "html.parser")

for tr in soup.find('tbody').children: # 先检索到tbody标签

if isinstance(tr, bs4.element.Tag):

tds = tr('td') # 查询tr中的td标签,等价于tr.find_all('td')

# 新版的排名封装在a标签中,所以这里需要具体到查找属性为'name-cn'的a标签并存储其字符串,即大学的中文名称

a = tr('a','name-cn')

ulist.append([tds[0].string.strip(),a[0].string.strip(),tds[2].text.strip(),tds[4].string.strip()]) # 使用二维列表存储信息

def printUnivList(ulist, num):

tplt = "{0:^10}\t{1:{4}^10}\t{2:^10}\t{3:^10}"

# {3}表示需要填充时使用format的第三个变量进行填充,即使用中文空格

print(tplt.format("排名", "学校名称", "地区", "总分", chr(12288)))

for i in range(num):

u = ulist[i]

print(tplt.format(u[0], u[1], u[2], u[3], chr(12288)))

def main():

uinfo = []

url = ""

html = getHTMLText(url)

fillUnivList(uinfo, html)

printUnivList(uinfo, 20) # 20 univ

if __name__ == "__main__":

main()

登录后复制

?

总结

采用 requests‐bs4 路线实现了中国大学排名定向爬虫。

对中英文混排输出问题进行优化。

爬虫

python

数据挖掘

https

html

仙侠问道手机游戏

精选推荐

?广告

?

中国大学排名的爬虫实战

1014阅读·0评论·0点赞

2022年1月24日

Python 爬虫-2020年中国大学排名

469阅读·5评论·1点赞

2020年9月13日

爬取大学排名信息实验报告

143阅读·0评论·0点赞

2022年10月23日

Python爬虫(一)—— 中国大学排名

6382阅读·11评论·11点赞

2022年4月2日

【Python爬虫】爬取2022软科全国大学排行榜

3115阅读·6评论·7点赞

2022年7月3日

【爬虫实战】5Python网络爬虫——中国大学排名定向爬虫

595阅读·3评论·5点赞

2021年1月17日

升级快的传奇手游

?

精选推荐

?广告

Python练习-爬虫(附加爬取中国大学排名)

3539阅读·5评论·4点赞

2022年1月6日

【网络爬虫】爬取中国大学排名网站上的排名信息,将排名前20的大学的信息保存为文本文件并在窗口打印的python程序

1445阅读·1评论·4点赞

2022年1月26日

2.python爬虫实战:爬取近5年的中国大学排行榜信息【Python】(测试代码+api例程)

865阅读·0评论·1点赞

2022年5月19日

python爬虫案例典型:爬取大学排名(亲测有效)

2369阅读·0评论·5点赞

2022年6月12日

python爬虫 2021中国大学排名定向爬虫

5729阅读·8评论·26点赞

2021年4月28日

Python网络爬虫实例——“中国最好大学排名爬取”(嵩天:北理工大学)学习笔记

6217阅读·1评论·13点赞

2019年3月20日

最新2022中国大学排名发布!

216阅读·0评论·0点赞

2022年2月22日

python爬虫分析大学排名_Python爬虫之爬取中国大学排名(BeautifulSoup库)

1342阅读·0评论·2点赞

2021年2月4日

python实例,python网络爬虫爬取大学排名!

1931阅读·0评论·2点赞

2018年11月20日

学习笔记:中国大学排名定向爬虫

5171阅读·4评论·5点赞

2021年12月23日

【爬虫】爬取大学排名信息

252阅读·0评论·0点赞

2022年10月6日

网络爬虫爬取中国大学排名,并存入数据库

573阅读·0评论·1点赞

2019年9月21日

Python3爬虫爬取中国大学排名数据并写入MySQL数据库

2272阅读·0评论·2点赞

2018年10月17日

python网络爬虫与信息提取-04-爬取某大学排名网站的排名数据

334阅读·0评论·0点赞

2020年1月19日

去首页

看看更多热门内容

评论18

?

weixin_48444032

?

1

为什么只能最多获取到30条?怎么修改??

2022.04.26

?

qq_56912992

?

如果想把数据保存到excel具体应该怎么改呢

2022.12.03

?

qq_56912992

?

你好我想多获取到办学资源那一列数据,但是为什么我添加了tds[5].string.strip()],后面的format也改了,但是只出现列头的”办学资源“文字,却不出现相应的数字数据呢,求解答!!

Python爬虫求教学?

链接:

提取码: cqys

python爬虫课程以Python语言为基础描述了网络爬虫的基础知识,用大量实际案例及代码,介绍了编写网络爬虫所需要的相关知识要点及项目实践的相关技巧。 ? ?

python基础 爬虫项目有哪些?

我们上篇才讲了面试中需要准备的内容,关于最后一点可能讲的不是很详细,小伙伴们很有对项目这块很感兴趣。毕竟所有的理论知识最后都是通过实践检验的,如果能有拿得出手的项目,面试中会大大的加分。下面小编就来跟大讲讲python的爬虫项目有哪些以及该学点什么内容。

wesome-spider

这一项目收集了100多个爬虫,默认使用了Python作为爬虫语言。你既可以在这个项目中,找到爬取Bilibili视频的爬虫,也可以使用爬虫,通过豆瓣评分和评价人数等各项数据,来挖掘那些隐藏的好书,甚至还可以用来爬取京东、链家、网盘等生活所需的数据。此外,这个项目还提供了一些很有意思的爬虫,比如爬取神评论、妹子图片、心灵毒鸡汤等等,既有实用爬虫,也有恶搞自嗨,满足了大部分人实用爬虫的需求。

Nyspider

Nyspider也非常厉害,如果你想获得“信息”,它是一个不错的选择。在这个项目里,你既能获取链家的房产信息,也可以批量爬取A股的股东信息,猫眼电影的票房数据、还可以爬取猎聘网的招聘信息、获取融资数据等等,可谓是爬取数据,获取信息的好手。

python-spider

这个项目是ID为Jack-Cherish的东北大学学生整理的python爬虫资料,涵盖了很多爬虫实战项目,如下载漫画、答题辅助系统、抢票小助手等等等等。如果你已经学会了爬虫,急切得像找一些项目练手,这里就可以满足你的这一需求。当然,W3Cschool上也有很多爬虫实战项目,有需要的同学,也可以拿来作为练习使用。

以上的3个模块基于GitHub中的部分内容,感兴趣的小伙伴也可以了解下其他的模块,毕竟GitHub使用也比较广泛。更多Python学习推荐:PyThon学习网教学中心。

python爬虫什么教程最好

可以看这个教程:网页链接

此教程 通过三个爬虫案例来使学员认识Scrapy框架、了解Scrapy的架构、熟悉Scrapy各模块。

此教程的大致内容:

1、Scrapy的简介。

主要知识点:Scrapy的架构和运作流程。

2、搭建开发环境:

主要知识点:Windows及Linux环境下Scrapy的安装。

3、Scrapy Shell以及Scrapy Selectors的使用。

4、使用Scrapy完成网站信息的爬取。

主要知识点:创建Scrapy项目(scrapy startproject)、定义提取的结构化数据(Item)、编写爬取网站的 Spider 并提取出结构化数据(Item)、编写 Item Pipelines 来存储提取到的Item(即结构化数据)。

(责任编辑:IT教学网)

更多

推荐广告特效文章