版本:py3
import urllib.request
import urllib.error
import re
from bs4 import BeautifulSoup
def get_one_page(url):
try:
response = urllib.request.urlopen(url)
if response.code == 200:
return response.read()
return None
except urllib.error.HTTPError:
return None
def parse_page(html):
parse = re.compile('<dd>.*?board-index.*?">(\d+xS)</i>.*?name"><a.*?>(.*?)</a>'
+'.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i><.*?>(.*?)</i></p>',re.S)
item = re.findall(parse,html)
for each in item:
yield {
'rank' :each[0],
'title':each[1],
'actor':each[2].strip()[3:],
'time' :each[3].strip()[5:],
'score':each[4]+each[5],
}
def main():
for i in range(10):
url = 'https://maoyan.com/board/4?offset=' + str(i*10)
html = get_one_page(url).decode('utf-8')
for each in parse_page(html):
print(each)
if __name__ == '__main__':
main()