python爬虫实战入门

  1. 基础概念
    1. 爬虫原理
    2. 爬虫工具
    3. 网页结构
  2. 实战
    1. 爬取网页

这篇文章主要介绍怎么快速爬取网站数据,具体原理和网络只是作为TODO,后续会补充。

基础概念

爬虫原理

最简单的爬虫原理就是通过HTTP请求获得网页内容,然后从获取的网页内容当中解析想要的数据,所以核心分为网络请求和数据解析两部分。TODO:介绍复杂的请求情况与多样的解析手段

爬虫工具

上面提到爬虫主要分为网络请求和数据解析两个部分,第一部分的工具可以使用requests库,第二部分的工具可以使用beautifulsoup库。TODO:介绍其他工具的使用场景

网页结构

网页结构主要分为HTML、CSS、JS三部分,其中HTML是网页的骨架,CSS是网页的样式,JS是网页的交互。其中的HTML是要关注的主要部分,因为网页内容信息基本都在HTML当中TODO:介绍HTML的基本结构

实战

爬取网页

import requests
from bs4 import BeautifulSoup

#以爬取百度首页为例
url = 'https://www.baidu.com'

#获取HTML内容
def get_html(url):
    #这一步精简了很多过程,包括网络请求、状态码判断、编码处理等,直接假设网络请求成功
    response = requests.get(url)
    return response.text

def get_data(html):
    #解析HTML内容
    soup = BeautifulSoup(html, 'html.parser')

    #假设要获取整个页面的所有链接
    #需要实际查看网页源码,找到链接所在的标签和属性,基础的可以按f12打开浏览器开发者工具,然后用左上角的选择器找到对应的标签,然后右键复制选择器
    
    #比如看到链接都在href属性的a标签当中
    links = soup.find_all('a')
    links = [link.get('href') for link in links]

    #或者直接用CSS选择器
    links = soup.select('a')
    links = [link.get('href') for link in links]

    #也可以用lxlm的xpath
    from lxml import etree
    html = etree.HTML(html)
    links = html.xpath('//a/@href')
    #上述的方法定位需要进入浏览器开发者工具查看源码,然后找到对应的标签和属性,然后用对应的方法提取

    #或者直接用正则表达式,因为提取之后的内容是字符串,所以可以用正则表达式
    import re
    links = re.findall(r'<a.*?href="(.*?)".*?>', html)

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2128099421@qq.com

×

喜欢就点赞,疼爱就打赏