• 第一个小爬虫


    # requests 用来发送http请求            bs4  用来解析网页          chardet    用来检测网页编码格式
    import json
    
    import requests
    from bs4 import BeautifulSoup
    import chardet
    from lxml import html
    import xml
    
    # 存储爬取信息的文本文件。a为追加模式,新增信息始终放在已有的信息后面,这样已有的内容就不会被覆盖
    f = open("E:info.txt", "a")
    # 要爬取信息的url,找网址的时候很可能出现假网址,网址里边进行了二次请求。可以通过找请求头内容的方式找到实际的网址
    url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0"
    # 伪装爬虫,请求头的内容可以在浏览器中获得(打开网页,点击键键盘上的F12,出现控制台,点击网络,再点击XHR)
    header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'
        , 'Connection': 'keep-alive'
              }
    # 此处for循环没有作用,本来想爬取10个网页的数据,但是发现豆瓣网页直接将一个模块的数据打包为json,全部获得
    for i in range(1):
        # 用requests库的get方法与服务器进行连接,返回一个requests.models.Response的类
        pageConnect = requests.get(url, headers=header)
        print(type(pageConnect))
    
        # 用chardet库中detect方法获取网页的编码格式,返回的是dict字典,具体的编码格式在encoding这个键对应的值中
        pageConnect.encoding = chardet.detect(pageConnect.content)['encoding']
    
        # 设置好编码格式后,用text方法把pageConnect转化为字符串供beautifulSoup处理,但是本次直接得到了json,
        # 就不用再通过找便签来识别数据,所以解析网页的就注释了
        page = pageConnect.text
        print(type(page))
    
        # 用beautifulSoup进行解析网页,lxml是解析类型
        # soup=BeautifulSoup(page,'lxml')
        # print(soup)
        # 进行h5标签选择
        # ppp=soup.select('p')
        
    # json.dumps():将字典转为字符串类型 # json.loads():将字符串转成dict类型 json_page = json.loads(page) print(json_page) newpages = json_page['subjects'] print(newpages) for x in range(len(newpages)): newpage = newpages[x] moviename = newpage['title'] print(moviename) f.write(moviename+' ')

     参考文章:https://blog.csdn.net/guanmaoning/article/details/80158554

  • 相关阅读:
    [lua]原来这才是表驱动的正确表达方式
    [lua]再版jobSchedule与脚本描述范型
    (景德镇)麻将计分规则
    日志输出法则
    去掉谷歌浏览器获取焦点时默认的input、textarea的边框和背景
    使用@font-face 属性 实现在网页中嵌入任意字体
    【问题】/usr/bin/env: php: 没有那个文件或目录
    Centos下nginx支持https协议
    PHP下生成非重复的id
    PHP下的手机号码效验
  • 原文地址:https://www.cnblogs.com/fbbg/p/12619365.html
Copyright © 2020-2023  润新知