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++的编程内容。