欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python简易爬虫v1.0

程序员文章站 2022-05-30 20:48:14
python简易爬虫v1.0作者:William Ma (the_CoderWM)进阶python的首秀,大部分童鞋肯定是做个简单的爬虫吧,众所周知,爬虫需要各种各样的第三方库,例如scrapy, bs4, requests, urllib3等等。此处,我们先从最简单的爬虫开始。首先,我们需要安装两个第三方库:requests和bs4。在cmd中输入以下代码:pip install requestspip install bs4等安装成功后,就可以进入pycharm来写爬虫了。爬...

python简易爬虫v1.0

作者:William Ma (the_CoderWM)

进阶python的首秀,大部分童鞋肯定是做个简单的爬虫吧,

众所周知,爬虫需要各种各样的第三方库,例如scrapy, bs4, requests, urllib3等等。此处,我们先从最简单的爬虫开始。

首先,我们需要安装两个第三方库:requests和bs4。
在cmd中输入以下代码:

pip install requests
pip install bs4

等安装成功后,就可以进入pycharm来写爬虫了。


爬虫

首先导入刚刚安装好的包,代码如下:

import requests
from bs4 import BeautifulSoup

接着,我们要定义一个URL常量,用来存储要爬虫的链接,这个链接我们就设置成厦门链家的租房网站;

URL = "https://xm.lianjia.com/zufang/"

Bs4和requests这时就要大展身手啦,我们要先定义一个函数,用来获取网站的源代码;

def get_page(url):
    """
	    获取网页
    """
    response = requests.get(url)
    soup = BeautifulSoup(response.text, "lxml")
    return soup

这里的response是获取网页的一个信息返回值,这个返回值的text就是网页的源代码,这里使用BeautifulSoup对代码以lxml的格式进行解析,并返回解析后的结果。
python简易爬虫v1.0
要想把租房的某个价格一一获取下来,还得我们的f12(检查)来帮忙。
打开链接后按下Fn+F12, 右侧就会弹出这样一个侧边栏:
python简易爬虫v1.0
单击左上角的小箭头,再移到页面上任意一个租房的价格,点击一下,细心的童鞋就会注意到,右侧代码的位置已经发生了变化。仔细观察,可以发现网页上的“1300元\月”的文字。那么,怎么把它获取下来呢?
python简易爬虫v1.0
注意看,1300上方的标签是“span”, 类的名称是“content__list–item-price”。将类名复制,重新回到我们的编辑器中,写以下几行代码:

soup = get_page(URL)
price_lst = soup.find_all("span", class_="content__list--item-price")
for i in price_lst:
    print(i.text)

一行一行来解释一下:

第一行指我们要从刚刚定义的函数中得到网页源代码,

第二行指从网页源代码中搜索类名为“content__list–item-price”且标签为span的类,注意,class后一定要跟一个下划线,因为class是python定义类的关键字,不能用来作为参数名。此时price_lst是一个列表,里面存储着所有符合条件的类源代码。

第三行使用for循环对这个lst进行遍历,同时打印出列表中每个元素的文本。

运行结果是这样的:
1300 元/月
1400-1760 元/月
1700 元/月
1500 元/月
1700 元/月
2699 元/月
1200 元/月
1250 元/月
1100 元/月
1800 元/月
1750 元/月
1800 元/月
1700 元/月
1100 元/月
1200 元/月
1000 元/月
1500 元/月
1100 元/月
1100 元/月
400 元/月
1750 元/月
1249 元/月
1550 元/月
1500 元/月
600 元/月
2650 元/月
800 元/月
2000 元/月
1800 元/月
1900 元/月
1600 元/月
1600 元/月
1900 元/月

进程已结束,退出代码0


这样,我们的第一个简易爬虫就大功告成了,但是,如何将这些内容进行一个比较呢?下期内容将为您揭晓。


原创不易,求打赏 :)

关于我:11岁小学生,马上六年级了,喜欢个人研究一些python和c++的编程内容。

本文地址:https://blog.csdn.net/the_CoderWM/article/details/107246238