开发者社区 问答 正文

python如何做爬虫

python如何做爬虫

问题来源于python学习网

展开
收起
保持可爱mmm 2019-12-11 16:28:33 327 分享 版权
1 条回答
写回答
取消 提交回答
  • 整体思路流程

    通过URL获取说要爬取的页面的响应信息(Requests库的使用)

    通过python中的解析库来对response进行结构化解析(BeautifulSoup库的使用)

    通过对解析库的使用和对所需要的信息的定位从response中获取需要的数据(selecter和xpath的使用)

    将数据组织成一定的格式进行保存(MongoDB的使用)

    通过对数据库中的数据进行筛选和组织,进行数据可视化的初步展示(HighCharts库的使用)

    简单代码演示

    准备工作

    下载并安装所需要的python库,包括:

    requests库:用于向指定url发起请求

    BeautifulSoup库:用于解析返回的网页信息

    lxml库:用于解析网页返回结果

    pymongo库:用于实现python对MongoDB的操作

    对所需要的网页进行请求并解析返回的数据

    对于想要做一个简单的爬虫而言,这一步其实很简单,主要是通过requests库来进行请求,然后对返回的数据进行一个解析,解析之后通过对于元素的定位和选择来获取所需要的数据元素,进而获取到数据的一个过程。

    以上就是一个简单的网页爬虫的制作过程,我们可以通过定义不同的爬虫来实现爬取不同页面的信息,并通过程序的控制来实现一个自动化爬虫。

    以下是一个爬虫的实例

    import requests

    from bs4 import BeautifulSoup

    start_url = 'http://bj.58.com/sale.shtml'

    url_host = 'http://bj.58.com'

    #定义一个爬虫函数来获取二手市场页面中的全部大类页面的连接

    def get_channel_urls(url):

    #使用Requests库来进行一次请求
    
    web_data = requests.get(url)
    
    #使用BeautifulSoup对获取到的页面进行解析
    
    soup = BeautifulSoup(web_data.text, 'lxml')
    
    #根据页面内的定位信息获取到全部大类所对应的连接
    
    urls = soup.select('ul.ym-submnu > li > b > a')
    
    #作这两行处理是因为有的标签有链接,但是却是空内容
    
    for link in urls:
    
        if link.text.isspace():
    
            continue
    
        else:
    
            page_url = url_host + link.get('href')
    
            print(page_url)
    

    问题来源于python学习网

    2019-12-11 16:28:44
    赞同 展开评论
问答分类:
问答标签:
问答地址: