python简易爬虫v1.0

   日期:2020-07-12     浏览:91    评论:0    
核心提示: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的格式进行解析,并返回解析后的结果。

要想把租房的某个价格一一获取下来,还得我们的f12(检查)来帮忙。
打开链接后按下Fn+F12, 右侧就会弹出这样一个侧边栏:

单击左上角的小箭头,再移到页面上任意一个租房的价格,点击一下,细心的童鞋就会注意到,右侧代码的位置已经发生了变化。仔细观察,可以发现网页上的“1300元\月”的文字。那么,怎么把它获取下来呢?

注意看,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++的编程内容。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服