下载最新电影的爬虫---Xpath读取文本,链接,标题等的操作【Python】

下载最新电影的爬虫

1、使用:

  • lxml.etree
  • requests

2、代码:

# -*- coding:utf-8 -*-
import requests
from lxml import etree


url = 'http://www.ygdy8.net/html/gndy/dyzz/index.html'  #这是电影最新电影的网站
# r = requests.get(url).content
# print(r.encoding)
# >>> ISO-8859-1
html = requests.get(url).content
# html = requests.get(url).content.decode('ISO-8859-1').encode('utf-8')

selector = etree.HTML(html)

# //*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[2]/p[1]
# get rid of the : /tbody
biaoti = selector.xpath('//*[@id="header"]/div/div[3]/div[3]/div[2]/div[2]/div[2]/ul//tr[2]/td[2]/b/a/text()')


# get rid of the : /tbody
jianjie = selector.xpath('/html/body/div/div/div[3]/div[3]/div[2]/div[2]/div[2]/ul//tr[4]/td/text()')
wangzhi = selector.xpath('//*[@id="header"]/div/div[3]/div[3]/div[2]/div[2]/div[2]/ul//tr[2]/td[2]/b/a/@href')

for b,j,k in zip(biaoti,jianjie,wangzhi):
    print(b+'\n'+j+'\n'+'www.ygdy8.net'+k+'\n')

3、分析:主要和上一篇的接近,但是这一篇还有读取网址等操作,注意格式上和读取内容text有差别的。
总结如下:

获取到标签后我们可以获取标签中的属性值
tree.xpath("//div[@class='sec_blk mrg_b_30']/ul/li[1]/a/text()")     #获取a的文本,li标号是从1开始,而不是从0开始
tree.xpath("//div[@class='sec_blk mrg_b_30']/ul/li[1]/a/@href")   #获取a的链接地址

当然还有其他类似的xpath例子:
"//input[@id='city']/@value"
"//div[@class='venueDetal']/p/img[@class='img']/@src"
"//div[@class='detail_info_title']//a[@class='hotel_star']/@title"

4、参考: python+lxml xpath获取数据

5、可补充点: 自动提取直接下载链接,看是否能导入到迅雷等工具。