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()