c 抓取网页数据(定制网页数据存储结构,保存相应数据(c抓取))
优采云 发布时间: 2022-03-16 19:11c 抓取网页数据(定制网页数据存储结构,保存相应数据(c抓取))
c抓取网页数据有多种方法,可以采用python、numpy、pandas等。但直接抓取网页数据库中的数据有时会显得格格不入。这就需要我们定制网页数据存储结构,保存相应数据。首先抓取的数据以文本格式保存,例如:{[user_id]:user_id,[age]:age}这种数据特点在于,抓取过程中没有对user_id做任何处理,我们直接将其存储在文本中。
但对于爬虫,这种存储形式容易给浏览器造成压力,最常见的原因是:每次爬取的数据都要在下次抓取网页时进行一次user_id的去重。可以尝试使用bs4(beautifulsoup4)+bs4.extract()方法来解决这个问题。先看下bs4中的方法的用法:extract方法的核心用法可以参看《python3网络爬虫基础知识》extract方法的4个参数说明:url(获取页面的url):获取第一页或者第二页以及每页的页面地址。
headers(发送给浏览器的headers信息):发送一个请求、重定向到调用该页面的对应url。image(请求图片文件):发送一个请求、重定向到当前页所在网页。python图片处理库的使用extract.python_python.content.scrapy.content_to_json(pythoncontent转换json格式):其实就是网页上已经存在的json数据变成bson格式(纯python方法,只需要模拟浏览器点击图片,这里记住,图片请求会发送一个浏览器地址,并且其中包含图片链接)例如使用:post最常见的开始爬虫使用的抓取方法:1.点击item的属性找到存放对应数据的文件2.使用beautifulsoup()模块来解析该文件返回的对应json格式数据这里使用的是beautifulsoup方法,还可以使用os模块、chrome等模块。
相应的,代码可以:importbs4extract_request=bs4.extract(soup,'./users/imooc/ppt/{user_id}/{age}/{score}'.format(score))使用content_to_json()方法就相对简单很多。content_to_json(soup,'users/users/imooc/ppt/{user_id}/{score}'.format(score))就是发送一个请求,得到user_id和当前爬取的结果相应的json对象即可。缺点:由于浏览器会多次请求文件,所以返回json格式时可能会出现乱码等情况。