Python3 爬虫教程 (二)
程序员文章站
2022-05-28 22:29:35
...
从爬取的页面获取所需信息
这个需要用到Python的解析库lxml和xpath的知识,不知道的同学请自行百度,菜鸟或者w3c都有,十分钟就能搞定个大概,剩下的还是实战磨合比较好
话不多说,先确定目标,还是那个网站,我们先来爬取一张首页展示的一个套图的标题和点进去的url链接
就这个吧,含蓄点,不然我怕会出事(尴尬的笑了笑)
首先让我们按下F12,定位到标题和链接的位置
哦,巧了,注意一下下面的红方框,两者竟然在一起
那方便了,xpath路径大差不差
接下来上代码,不过这里我就不爬取这一个了,而是把这一页的所有标题和链接都爬出来(话说哪有爬虫只爬一个呢,我还不如右键复制粘贴)
import requests #请求库用于发送请求
from lxml import html
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
def GetMessage(url):
page = requests.get(url=url,headers=headers) #也可以直接url,不过这里习惯了url=
tree = html.fromstring(page.text) #把那些html按照结构排一下,类似于目录结构吧
title = tree.xpath('//span/a/text()')
name = tree.xpath('//span/a/@href')
print(title)
print(name)
if __name__ == '__main__':
url = 'https://www.mzitu.com'
GetMessage(url)
数据出来了,但是这个看着怎么这么违和呢?
我们稍微调整一下吧
import requests #请求库用于发送请求
from lxml import html
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
def GetMessage(url):
page = requests.get(url=url,headers=headers) #也可以直接url,不过这里习惯了url=
tree = html.fromstring(page.text) #把那些html按照结构排一下,类似于目录结构吧
title = tree.xpath('//span/a/text()')
url = tree.xpath('//span/a/@href')
message = []
for i in range(len(title)):
mess = {'title': title[i],'url':url[i]}
message.append(mess)
print(message)
if __name__ == '__main__':
url = 'https://www.mzitu.com'
GetMessage(url)
看,这个数据格式是不是就看着舒服了?
上一篇: Python3 爬虫教程(三)