88 lines
5.0 KiB
Python
88 lines
5.0 KiB
Python
import re
|
|
from lxml import etree
|
|
import json
|
|
import requests
|
|
from bs4 import BeautifulSoup
|
|
from ADC_function import *
|
|
|
|
def getTitle(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result = str(html.xpath('//*[@id="center_column"]/div[2]/h1/text()')).strip(" ['']")
|
|
return result
|
|
def getActor(a): #//*[@id="center_column"]/div[2]/div[1]/div/table/tbody/tr[1]/td/text()
|
|
html = etree.fromstring(a, etree.HTMLParser()) #//table/tr[1]/td[1]/text()
|
|
result2=str(html.xpath('//table/tr[1]/td[1]/text()')).strip(" ['\\n ']")
|
|
result1 = str(html.xpath('//table/tr[1]/td[1]/a/text()')).strip(" ['\\n ']")
|
|
return str(result1+result2).strip('+')
|
|
def getStudio(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result2=str(html.xpath('//table[2]/tr[2]/td/text()')).strip(" ['\\n ']")
|
|
result1 = str(html.xpath('//table/tr[2]/td[1]/a/text()')).strip(" ['\\n ']")
|
|
return str(result1+result2).strip('+')
|
|
def getRuntime(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result2=str(html.xpath('//table/tr[3]/td[1]/text()')).strip(" ['\\n ']")
|
|
result1 = str(html.xpath('//table/tr[3]/td[1]/a/text()')).strip(" ['\\n ']")
|
|
return str(result1 + result2).strip('+').strip('mi')
|
|
def getLabel(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result2=str(html.xpath('//table/tr[6]/td[1]/text()')).strip(" ['\\n ']")
|
|
result1 = str(html.xpath('//table/tr[6]/td[1]/a/text()')).strip(" ['\\n ']")
|
|
return str(result1 + result2).strip('+')
|
|
def getNum(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result2=str(html.xpath('//table/tr[2]/td[4]/a/text()')).strip(" ['\\n ']")
|
|
result1 = str(html.xpath('//table/tr[2]/td[4]/text()')).strip(" ['\\n ']")
|
|
return str(result1 + result2).strip('+')
|
|
def getYear(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result2=str(html.xpath('//table/tr[2]/td[5]/a/text()')).strip(" ['\\n ']")
|
|
result1=str(html.xpath('//table/tr[2]/td[5]/text()')).strip(" ['\\n ']")
|
|
return result2+result1
|
|
def getRelease(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result2=str(html.xpath('//table/tr[5]/td[1]/text()')).strip(" ['\\n ']")
|
|
result1 = str(html.xpath('//table/tr[5]/a/td[1]/text()')).strip(" ['\\n ']")
|
|
return str(result1 + result2).strip('+')
|
|
def getTag(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result2=str(html.xpath('//table/tr[8]/td[1]/a/text()')).strip(" ['\\n ']")
|
|
result1=str(html.xpath('//table/tr[8]/td[1]/text()')).strip(" ['\\n ']")
|
|
return str(result1 + result2).strip('+')
|
|
def getCover(htmlcode):
|
|
html = etree.fromstring(htmlcode, etree.HTMLParser())
|
|
result = str(html.xpath('//*[@id="center_column"]/div[2]/div[1]/div/div/h2/img/@src')).strip(" ['']")
|
|
return result
|
|
def getDirector(a):
|
|
html = etree.fromstring(a, etree.HTMLParser())
|
|
result1 = str(html.xpath('//table/tr[2]/td[1]/text()')).strip(" ['\\n ']")
|
|
result2 = str(html.xpath('//table/tr[2]/td[1]/a/text()')).strip(" ['\\n ']")
|
|
return str(result1 + result2).strip('+')
|
|
def getOutline(htmlcode):
|
|
html = etree.fromstring(htmlcode, etree.HTMLParser())
|
|
result = str(html.xpath('//*[@id="introduction"]/dd/p[1]/text()')).strip(" ['']")
|
|
return result
|
|
def main(number):
|
|
htmlcode=get_html('https://www.mgstage.com/product/product_detail/'+str(number),cookies={'adc':'1'})
|
|
soup = BeautifulSoup(htmlcode, 'lxml')
|
|
a = str(soup.find(attrs={'class': 'detail_data'})).replace('\n ','')
|
|
#print(a)
|
|
dic = {
|
|
'title': getTitle(htmlcode).replace("\\n",'').replace(' ',''),
|
|
'studio': getStudio(a),
|
|
'year': str(re.search('\d{4}',getRelease(a)).group()),
|
|
'outline': getOutline(htmlcode),
|
|
'runtime': getRuntime(a),
|
|
'director': getDirector(a),
|
|
'actor': getActor(a),
|
|
'release': getRelease(a),
|
|
'number': number,
|
|
'cover': getCover(htmlcode),
|
|
'imagecut': 0,
|
|
'tag': getTag(a).replace("'\\n',",'').replace(' ', '').replace("\\n','\\n",','),
|
|
'label':getLabel(a)
|
|
}
|
|
js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'),)#.encode('UTF-8')
|
|
#print('https://www.mgstage.com/product/product_detail/'+str(number))
|
|
return js
|
|
#print(main('SIRO-3552')) |