zheshen 发表于 2018-8-13 15:13

[Python]小白上路了 自学爬取电影天堂下载链接


from lxml import etree
import requests

ht = 'http://www.ygdy8.net/'
#请求第一页数据
#url = 'http://www.ygdy8.net/html/gndy/dyzz/list_23_1.html'
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'
}
move = []
#得到前七页链接
base_html = "http://www.ygdy8.net/html/gndy/dyzz/list_23_{}.html"
for x in range(1,2):
    url = base_html.format(x)
    #得到电影页代码
    resopen = requests.get(url,headers=headers)
    html = resopen.text
    # html = resopen.content.decode('gbk')
    #得到电影链接
    htmls = etree.HTML(html)#导入
    D_url = htmls.xpath("//table[@class='tbspan']//a/@href")
    for D in D_url:
      DY_url = ht+D
      movies = {}
      #以获取前几页所有下载页面链接
      resopens = requests.get(DY_url,headers=headers)
      html_DY = resopens.content.decode('gbk')
      html_DY_get = etree.HTML(html_DY)
      title = html_DY_get.xpath("//div[@class='title_all']//font[@color='#07519a']/text()")
      movies['title'] = title
      img = html_DY_get.xpath("//div[@id='Zoom']//img/@src")
      img_hb = img[0]
      # img_jq = img
      movies['海报'] = img_hb
      # movies['剧情图'] = img_jq
      get_texts = html_DY_get.xpath("//div[@id='Zoom']//text()")
      for get_text in get_texts:
            if get_text.startswith('◎年  代'):
                get_text = get_text.replace('◎年  代','')
                movies['年代'] = get_text
            elif get_text.startswith('◎类  别'):
                get_text = get_text.replace('◎类  别', '')
                movies['类别'] = get_text
            elif get_text.startswith('◎主  演'):
                get_text = get_text.replace('◎主  演', '')
                movies['主演'] = get_text
            elif get_text.startswith('◎简  介'):
                get_text = get_text.replace('◎简  介', '')
                movies['简介'] = get_text
      # print(movies)
      move.append(movies)
# print(move)
      movie = str(move)
with open('电影天堂.txt','w')as fp:
    fp.write(movie)












[*]

zheshen 发表于 2018-8-14 11:22

aiLT 发表于 2018-8-13 20:06
我也在学这里,我在想加入一些自己的思考会更好,比如爬个10多页,自己得到一些其他数据,这样才算学的来, ...

我主要对于自定义不是很懂 所以自己就用for 一直写完了

Dirichlets 发表于 2018-9-30 15:16

倒数第二行代码,需要改一下编码格式,不然在最后一行读数据的时候会报错“UnicodeEncodeError: 'gbk' codec can't encode character '\xf4' in position 1061: illegal multibyte sequence”

qianglele 发表于 2018-8-13 15:33

这是啥啊

陈家丶妖孽 发表于 2018-8-13 15:35

看的是同一部教程。21天那个。

rokycool 发表于 2018-8-13 15:40

注释好评

cs007 发表于 2018-8-13 15:46

没看懂,这是什么来的?下载连接直接抓取就可以了!

Dirichlets 发表于 2018-8-13 15:47

这是Python2的代码

tinnkyu 发表于 2018-8-13 16:08

看不懂哈哈。纯支持 。

zheshen 发表于 2018-8-13 19:25

Dirichlets 发表于 2018-8-13 15:47
这是Python2的代码

python 3

aiLT 发表于 2018-8-13 20:06

我也在学这里,我在想加入一些自己的思考会更好,比如爬个10多页,自己得到一些其他数据,这样才算学的来,而且我觉得这老师突然拿出一个函数对于我这种python新手及其不友好,/(ㄒoㄒ)/~~

隰则有泮 发表于 2018-8-13 22:24

仰望大神0.0
页: [1] 2
查看完整版本: [Python]小白上路了 自学爬取电影天堂下载链接