python爬虫類実戦爬虫類スコアネットの選手データをMySQLデータベースに保存する

10075 ワード

#コードが粗いのは一度に1つのチームの最近の大リストの選手のデータを得るしかなくて、1つのリーグ戦を得るには反復を書く必要があります.怠け者は書いていません.当時、ヨーロッパの5大トップリーグのデータを登ったのは、tableauの可視化のために登ったデータです.
import pymysql
from urllib.parse import urlencode
import requests
from lxml import etree
conn=pymysql.connect(host='localhost',port=3306,user='root',password='123456789',db='bra')
cur=conn.cursor()
url = "https://data.13322.com/team-362/2.html"
ua ='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
with requests.request('GET',url,headers = {'User-agent':ua}) as res:
    content = res.text          #  HTML   
    html = etree.HTML(content)  #  HTML,  DOM   
    #path = //div[@class='billboard-bd']//td//a/text()
    wz1 = html.xpath( "//div[@class='team_zj']//td[@align='left']//a[@target='_blank']/@href")
for url1 in wz1:
    ua ='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
    with requests.request('GET',url1,headers = {'User-agent':ua}) as res:
        content = res.text          #  HTML   
        html = etree.HTML(content)  #  HTML,  DOM   
        titles = html.xpath( "//div[@class='player-info']//tr/td[2]/text()")  #  xpath  ,      
        orders = html.xpath("//div[@class='player-info']//tr/td[1]/text()")
        orders1 = html.xpath("//div[@class='player-info']//tr/td[3]/text()")
        titles1 = html.xpath( "//div[@class='player-info']//td//a/text()")
        name=orders[0][3:]#  
        age=orders[1][3:]#  
        number=orders[2][5:]#    
        status=orders[3][7:]#    
        height=titles[1][3:]#  
        birthdate=orders1[0][5:]#    
        weight=orders1[1][3:]#  
        Idiomaticfeet=orders1[2][-2:]#   
        nationality=titles1[0]#  
        location=titles1[-1]#  
        sqli="insert into fm_copy values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
        cur.executemany(sqli,[
    ('  ',name,nationality,birthdate,age,height,weight,number,location,Idiomaticfeet,status)])
    conn.commit()
conn.close()