yx_robert 发表于 2018-11-13 01:07

新人首帖 爬虫高分电影

本帖最后由 yx_robert 于 2018-11-13 18:38 编辑

看论坛
学习很久
首次发个爬虫学习心得
高手无视
忽略丑陋的编码

#! /usr/bin/env python
# -*- coding: UTF-8 -*-

from lxml import etree
import requests
import sys

reload(sys)
sys.setdefaultencoding('gb2312')


def gbk_2_utf(_str):
    return _str.decode('gb2312').encode('UTF-8')


main_web = 'https://www.dytt8.net/'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
    'Referer': 'http://www.ygdy8.net/html/gndy/dyzz/list_23_2.html'
}

new_movie_web = 'https://www.dytt8.net/html/gndy/dyzz/index.html'
movie_list = []
save_file = u'最新高分电影.txt'


def main():
    url = new_movie_web
    # 得到电影页代码
    reopens = requests.get(url, headers=headers)
    reopens.encoding = "gb2312"# 手动指定字符编码为utf-8
    root = etree.HTML(reopens.text)# 导入
    # root = etree.tostring(root, encoding="utf-8", xml_declaration=False)

    # res = root.xpath('//a/@class')    #取某节点所有某属性
    # res = root.xpath('//*[@class="ulink"]')   #取匹配的所有节点
    # res = root.xpath('//*[@class="ulink"]/@href')   #取匹配的所有节点的某属性
    res = root.xpath('//*[@class="ulink"]')
    # res = root.xpath('//*[@class="ulink"]/@*') #匹配所有属性
    # res = root.xpath('//*//[@class="ulink"]')
    # print type(res)

    #
    movie_name = ''
    movie_adress = ''

    str_grade = u'豆瓣评分 '
    demand = float('7.5')
    for i in res:
      movie_url = main_web + i.attrib['href']
      print movie_url
      movie_name = i.text
      req = requests.get(movie_url, headers=headers)
      req.encoding = "gb2312"
      s = req.text.find(str_grade)
      if s != -1:
            s += len(str_grade)
            e = req.text.find('/')
            # print req.text
            val = float(req.text)
            # print req.text
            print val

            if val > demand:
                # print req.text
                rt = etree.HTML(req.text)
                # result = rt.xpath('//td/a/@href')
                # 查找第一个td包含的a, 并且a的属性href中包含‘ftp’
                result = rt.xpath('//td/a')
                print type(result), result
                for j in result:
                  # print j.attrib['href']
                  movie_adress = j.attrib['href']
                  movie_list.append()
                # break

      # print i.attrib['href'], i.text

    with open(save_file, 'w') as f:
      for i in movie_list:
            f.write(i + '\n')
            f.write(i + '\n\n')
      f.close()


if __name__ == "__main__":
    main()

123benny456w 发表于 2018-11-13 04:49

谢谢分享 楼主辛苦了收藏

yx_robert 发表于 2018-11-13 10:18

fch 发表于 2018-11-13 02:34
这代码放哪才可以运行就是说这代码怎样可以实现爬虫功能啊

命令行 cmd
python xxx.py
这是个代码分享
没做成工具

fch 发表于 2018-11-13 02:34

这代码放哪才可以运行就是说这代码怎样可以实现爬虫功能啊

beijinwork 发表于 2018-11-13 02:54

感谢分享 不过没有输出信息 能不能加个输出信息啊 这样不知道状态 只能时不时的看一下保存的文本

beijinwork 发表于 2018-11-13 03:19

    str_grade = u'豆瓣评分 '
    demand = float('7.0')

这里改成 7.0 没问题, 改成 6.0就获取不到了 为什么

nightingwish 发表于 2018-11-13 05:40

赞一个,其实自己动手,丰衣足食。参照撸主代码试着自己写一个才会有长进,

电话情思 发表于 2018-11-13 07:30

以后找高分电影方便许多

hu007 发表于 2018-11-13 07:41

点赞!谢谢分享!

591789 发表于 2018-11-13 08:24

感谢分享,已收藏

wilder 发表于 2018-11-13 08:26

感谢分享
页: [1] 2 3
查看完整版本: 新人首帖 爬虫高分电影