python怎么爬取网站数据(python怎么爬取网站所有网页)

http://www.itjxue.com  2023-03-27 03:26  来源:未知  点击次数: 

从零开始学Python-使用Selenium抓取动态网页数据

AJAX(Asynchronouse JavaScript And XML:异步JavaScript和XML)通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行局部更新。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。

因为传统的网页在传输数据格式方面,使用的是 XML 语法,因此叫做 AJAX ,其实现在数据交互基本上都是使用 JSON 。使用AJAX加载的数据,即使使用了JS将数据渲染到了浏览器中,在 右键-查看网页源代码 还是不能看到通过ajax加载的数据,只能看到使用这个url加载的html代码。

法1:直接分析ajax调用的接口。然后通过代码请求这个接口。

法2:使用Selenium+chromedriver模拟浏览器行为获取数据。

Selenium 相当于是一个机器人。可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如点击,填充数据,删除cookie等。 chromedriver 是一个驱动 Chrome 浏览器的驱动程序,使用他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。以下列出了不同浏览器及其对应的driver:

现在以一个简单的获取百度首页的例子来讲下 Selenium 和 chromedriver 如何快速入门:

参考:Selenium的使用

直接直接分析ajax调用的接口爬取

selenium结合lxml爬取

python 多线程爬取网站数据利用线程池

"""

@author: wangxingchun

多线程(线程池)

下载数据

"""

import requests

import csv

from concurrent.futures import ThreadPoolExecutor as tp

#创建一个csv文件,注意创建writer对象"csv.writer()"

f = open('xinfadi.csv','w',encoding='utf8')

csvwrite = csv.writer(f)

#如果写入txt文件,不需要创建writer对象。

# f = open('xinfadidata.txt','w',encoding='utf8')

#创建一个函数,以页码做为参数

def down(n_page):

url = ''

data = {'count': 428225,'current': n_page,'limit': 20}

resp = requests.post(url,data=data)

datas =resp.json()

#通过分析数据嵌套情况,获取数据。此处可在网页开发工具json数据中查看分析。

for i in range(len(datas['list'])):

name = datas['list'][i]['prodName']

highPrice = datas['list'][i]['highPrice']

lowPrice = datas['list'][i]['lowPrice']

pubDate = datas['list'][i]['pubDate']

place = datas['list'][i]['place']

csvwrite.writerow((name,highPrice,lowPrice,pubDate,place))#writerow要求写入的是可迭代对象

# f.writelines(f'{name},{highPrice},{lowPrice},{pubDate},{place} ')

resp.close()

if __name__ == '__main__':

with tp(50) as t: #创建线程池,

for n in range(1,101): #遍历数据网页

t.submit(down,n) #提交给线程池,进行多线程下载

print(f'共{n}页数据下载完毕!')

f.close()

python网络爬虫怎么学习

链接:

提取码:2b6c

课程简介

毕业不知如何就业?工作效率低经常挨骂?很多次想学编程都没有学会?

Python 实战:四周实现爬虫系统,无需编程基础,二十八天掌握一项谋生技能。

带你学到如何从网上批量获得几十万数据,如何处理海量大数据,数据可视化及网站制作。

课程目录

开始之前,魔力手册 for 实战学员预习

第一周:学会爬取网页信息

第二周:学会爬取大规模数据

第三周:数据统计与分析

第四周:搭建 Django 数据可视化网站

......

(责任编辑:IT教学网)

更多

推荐PHP+MySQL视频文章