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

Python3 爬虫教程 (二)

程序员文章站 2022-05-28 22:29:35
...

从爬取的页面获取所需信息

这个需要用到Python的解析库lxml和xpath的知识,不知道的同学请自行百度,菜鸟或者w3c都有,十分钟就能搞定个大概,剩下的还是实战磨合比较好
话不多说,先确定目标,还是那个网站,我们先来爬取一张首页展示的一个套图的标题和点进去的url链接
Python3 爬虫教程 (二)
就这个吧,含蓄点,不然我怕会出事(尴尬的笑了笑)
首先让我们按下F12,定位到标题和链接的位置
Python3 爬虫教程 (二)
哦,巧了,注意一下下面的红方框,两者竟然在一起
那方便了,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)

Python3 爬虫教程 (二)
数据出来了,但是这个看着怎么这么违和呢?
我们稍微调整一下吧

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 爬虫教程 (二)
看,这个数据格式是不是就看着舒服了?

相关标签: python3 爬虫