reptiles Python y adquisición de datos

#python tecnología rastreador
# 1-1 necesidad de solicitar el establecimiento de mecanismos de solicitud de urllib pitón o comunicación
# introducción de biblioteca de Python url, biblioteca pedir, una solicitud para la comunicación con la página web
'' '
de la urllib.request Importe el urlopen
url = "HTTPS : //www.python.org/ "
los urlopen (URL) de respuesta =
content = response.read ()
necesidades # para ser decodificados
contenido content.decode = (". UTF-8 ")
Imprimir (contenido)

modo # 2 se abre directamente demasiado urlopen sencillo, a veces necesitamos un poco de tacto solicitud

de importación urllib.request
url = "https://www.python.org/"
petición = urllib.request.Request (url)
la respuesta = la urllib.request.urlopen (petición)
contenido response.read = decodificación (). ( "UTF-8.")
print (response.geturl ())
de impresión (response.info ())
código de solicitud # impresión
de impresión (response.getcode ()) # 200 tiene éxito si la
impresión (tipo (respuesta))

# Solicitud de base de datos 3request, una solicitud para establecer un mecanismo de comunicación
de importación Pide
RES = requests.get ( "http://www.python.org/")
Imprimir (res.status_code) # código de estado
de impresión (res.text) # de información de texto sin formato a tomar fuera
de impresión (res.content) # no se limita a la información de texto

# encabezados del encabezado de la solicitud, la solicitud para establecer la página en lugar procedimientos pitón para evitar que la página que se permite
la importación solicita
cabeceras = {
'- Agente-usuario': 'Mozilla / 5.0 (Windows NT 10,0; Win64; x64-) AppleWebKit / 537.36 (KHTML, como el Gecko) la Chrome / 68.0.3440.106 Safari / 537.36 '
}
RES = requests.get ( "http://www.python.org/", cabeceras = cabeceras)
Imprimir ( RES) sacados de información de texto plano #

# 1-2 analiza los datos de la página web de
la función # BeautifulSoup se puede resolver utilizando las
solicitudes de importación
de importación BS4 BeautifulSoup
cabeceras = {
'User-Agent': 'Mozilla / 5.0 (Windows NT 10,0; Win64; 64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 68.0.3440.106 Safari / 537.36'
}
url = "http://news.qq.com /"
sopa = BeautifulSoup (requests.get (url = url, cabeceras = cabeceras) .text.encode ( "UTF-8"), "lxml")
em " attrs = { "em = soup.find_all (" clase" : "f14 124"})
para i en em:
title = iaget_text ()
link = IA [ "href"]
de impresión ({ "标题": título,
"链接": link
})

#解析库lxml
solicitudes de importación
importar lxml
de LXML eTree importación
cabeceras = {
'User-Agent': "Mozilla / 5.0 (Windows NT 10,0; Win64; 64) AppleWebKit / 537.36 (KHTML,like Gecko) Chrome / 68.0.3440.106 Safari / 537.36'
}
= URL "http://news.qq.com/"
HTML = requests.get (URL = URL, cabeceras = cabeceras)
CON = etree.HTML (html.text)
title = con.xpath ( '// EM [@ = clase "F14 124"] / a / texto () ')
Enlace con.xpath = (' // EM [@ class = "F14 124"] / a / @ href ')
porque en ZIP (título, Link) :
Imprimir ({ "heading": I [0],
"link": I [. 1]
})

# 1-3 de información método de extracción
de selección # 1css, métodos de seleccionar, expresión XPath, regular la expresión de
las solicitudes de importación
de importación BS4 los BeautifulSoup
cabeceras = {
'- Agent-usuario': 'Mozilla / 5.0 (Windows NT 10,0; Win64; x64-) AppleWebKit / 537.36 (KHTML, como el Gecko) Chrome / 68.0.3440.106 Safari / 537.36'
}
URL = "http: // Noticias .qq.com / "
sopa = la BeautifulSoup (requests.get (URL = URL,cabeceras = cabeceras) .text.encode ( "UTF-8"), "lxml")
em = soup.select ( 'em [class = "f14 124"] a')
para i en em:
title = i.get_text ()
link = i [ "href"]
de impresión ({ "标题": título,
"链接": link
})
# 2 XPath表达式
solicitudes de importación
importar lxml.html como HTML
los encabezados = {
'User-Agent':" Mozilla / 5.0 (Windows NT 10,0; Win64; 64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome /68.0.3440.106 Safari / 537.36'
}
url = "http://news.qq.com/"
con = HTML.fromstring (requests.get (url = url, cabeceras = cabeceras) .text)
title = con.xpath ( '// em [@ class = "f14 124"] / a / de texto ()')
link = con.xpath ( '// em [@ class = "f14 124"] / a / @ href')
para i en zip (título, link):
imprimir ({ "heading": I [0],
"link": I [. 1]
})
'' '
# 1-4 Trabajo de Adquisición de Datos - estático Adquisición de Datos
solicitudes de importación
de importación lxml etree
importación PANDAS como Pd
de la hora de dormir Importación
Importación aleatoria

#cookie
galletas = '_ ga = = JSESSIONID ABAAABAABGGAAFDB41FBAEE3423BAB77758EF657C3B981D; WEBTJ-ID = 2,020% E5% B9% B43% E6% 9C% 8,824% E6% 97% A5113837-1710a9ee8274fd-07cfb0bfecbcec-4d015463-921600-1710a9ee8296c; user_trace_token = 20200324113840-9c306f42-1785-49cc-852d-5782edc6b421; PRE_UTM =; PRE_HOST =; PRE_SITE = https% 3A% 2F% 2Fwww.lagou.com; PRE_LAND = https% 3A% 2F% 2Fwww.lagou.com% 2F; LGUID = 20200324113840-4182d6ba-8d8f-48fb-97ec-b01c2051ab8b; _gat = 1; sajssdk_2015_cross_new_user = 1; index_location_city =% E5% 8C% 97% E4% BA% AC; TG-TRACK-CODE = index_navigation; SEARCH_ID = 2b38b688f0674a5d99609b2e0e6dfaf6; sensorsdata2015jssdkcross =% 7B% 22distinct_id% 22% 3A% 221710a9f0212417-0b54e87737aecb-4d015463-921600-1710a9f02140% 22% 2C% 22% 24device_id% 22% 3A% 221710a9f0212417-0b54e87737aecb-4d015463-921600-1710a9f02140% 22% 7D; lagou_utm_source = A; X_HTTP_TOKEN = 65013509d78b2a6e42312058514ff12787dc7a92a2; _gid = GA1.2.2122772491.1585021121; _ga = GA1.2.1048705963.1585021121; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6 = 1585021121; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6 = 1585021324; LGSID = 20200324113840-d14fb07b-d1d3-4a29-958b-a2ccb9513c4e; LGRID = 20200324114204-53389ffc-25c0-415a-8871-afa85e05ed33; Hm_lvt_9d483e9e48ba1faa0dfceaf6333de846 = 1585021121; Hm_lpvt_9d483e9e48ba1faa0dfceaf6333de846 = 1585021325 '
= {encabezados
'del Agente User--': "el Mozilla / 5.0 (Windows NT 10,0; la WOW64) AppleWebKit / 537.36 (KHTML, como el Gecko) la Chrome / 49.0.2623.221 Safari / 537.36 SE 2.X MetaSr 1.0",
"cookies": Galleta
}
páginas web # Verificar recogen estructura cíclica
for i in range (l, 3):
SLEEP (el random.randint (3,10))
URL = "{} https://www.lagou.com/zhaopin/jiqixuexi/ /?filterOption=3&sid=8652d786c2764b7fa533a9e22e915a3c".format(i)
Imprimir ( "{} es el rastreo en la página ...." el formato (I), URL)
# solicita una página web y la determinación
con = etree.HTML (requests.get ( URL = URL, cabeceras = cabeceras) .text.encode ( "UTF-8."))
# se utiliza para extraer el respectivo campo de destino XPath
job_name = [i para i en con.xpath ( '// a [@ class = "position_link" ] / H3 / texto () ')]
job_address = [I en I CON.XPath ( '// a [@ class = "position_link"] / span / em / texto ()')]
= Job_company [I para I en con.xpath ( '// div [@ class = "COMPANY_NAME"] / A / texto ()')]
job_links = [I para I en con.xpath ( '// div [@class = "p_top"] / a / @ href ')]
recopilación de información después # para el enlace de la página de detalles
del empleo = []
para el enlace en job_links:
SLEEP (random.randint (3,10))
CON2 = etree.HTML (requests.get (URL = Link, cabeceras = cabeceras) .text)
des = [[i.xpath ( "String (.)") para I en con2.xpath ( 'dd // [@ class = "job_bt"] / div / P ')]]
de empleo + = des
PAUSA
datos # encapsulado diccionario
Conjuntos de datos = {
"nombre de trabajo": job_name,
"dirección de obra": job_address,
"compañía": job_company,
"requisitos":job_links
}

# datos en el bloque de datos y se guarda como un archivo CSV
de datos = pd.DataFrame (conjuntos de datos)
data.to_csv ( "máquina learning.csv")
print (data.head ())

Supongo que te gusta

Origin www.cnblogs.com/Yanjy-OnlyOne/p/12569059.html
Recomendado
Clasificación