不同网站和页面爬虫知识点

本文介绍了Python爬虫中处理动态加载页面的策略,包括解析Ajax翻页、构造URL以及应对下拉加载的内容。同时,讨论了GET和POST请求的区别,以及如何处理需要登录验证的网站。
摘要由CSDN通过智能技术生成

1、json.loads()解码python json格式
json.load()加载python json格式文件
因此使用requests.get(url)和urllib.urlopen(url)获取内容的方式如下:
在这里插入图片描述
2、关于爬取Ajax动态加载(翻页时url不变)的网页+网站
(1)中国票房网,周票房,无论选取哪一周,网址均为http://www.cbooo.cn/movieweek
对于该类网站,需要找出隐藏的真实网址。
XHR:XMLHttpRequest
图中Request URL 即为真实网址,设置不同的sdate参数即可获取不同周的数据。
在这里插入图片描述
(2)对于网页中含有下一页的网页数据爬取
一般下一页的url会变化,找出规律构造url即可。爬取多少页就构造几个url,若需要爬取到最后一页,需要设置停止参数,只需观察最后一页和不是最后一页参数的差异找出最后一页的参数。
以淘宝为例,Elements视图下定位第99页和第100页的代码,可以发现参数不一致。

在这里插入图片描述

以下是关于Python网页爬虫的一些知识点: 1. 创建Spider类:在Scrapy项目的spiders目录下创建一个新的Python文件,定义一个类,继承自scrapy.Spider类,并给它一个名字。 ```python import scrapy class MySpider(scrapy.Spider): name = "my_spider" ``` 2. 定义起始URL:在Spider类中定义一个start_urls列表,包含要爬取的起始URL。 ```python start_urls = [ 'http://www.example.com/page1', 'http://www.example.com/page2', ] ``` 3. 解析网页内容:在Spider类中定义一个parse方法,用于解析网页内容。可以使用XPath或CSS选择器来提取所需的数据。 ```python def parse(self, response): # 使用XPath提取数据 title = response.xpath('//h1/text()').get() content = response.xpath('//div[@class="content"]/text()').get() # 使用CSS选择器提取数据 links = response.css('a::attr(href)').getall() # 处理提取到的数据 # ... # 返回提取到的数据 yield { 'title': title, 'content': content, 'links': links, } ``` 4. 爬取下一页:如果需要爬取多个页面,可以在parse方法中使用scrapy.Request发送新的请求。 ```python def parse(self, response): # 解析当前页面的数据 # ... # 发送请求爬取下一页 next_page_url = response.css('a.next-page::attr(href)').get() if next_page_url: yield scrapy.Request(url=next_page_url, callback=self.parse) ``` 5. 存储数据:可以将爬取到的数据存储到数据库中,如MySQL或MongoDB,以便后续查询和管理。 ```python import pymongo class MySpider(scrapy.Spider): # ... def parse(self, response): # 解析网页内容 # ... # 存储数据到MongoDB client = pymongo.MongoClient('mongodb://localhost:27017/') db = client['mydatabase'] collection = db['mycollection'] collection.insert_one({ 'title': title, 'content': content, 'links': links, }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值