一般做外单的有哪些网站手机做任务的网站有哪些内容

当前位置: 首页 > news >正文

一般做外单的有哪些网站,手机做任务的网站有哪些内容,外贸营销网站建设介绍,wordpress导出淘宝大家好#xff0c;我是东眠的鱼#xff0c;专注原创#xff0c;致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货#xff0c;希望人人都能学到新知识。文末附带精品籽料哦#xff0c;也可以和博主一起学Python呀#xff01; 项目背景 有同学自学爬虫时…大家好我是东眠的鱼专注原创致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货希望人人都能学到新知识。文末附带精品籽料哦也可以和博主一起学Python呀 项目背景 有同学自学爬虫时发现翻页的时候url一直不变。其实他爬取的是较高难度的网页——动态网页。今天给大家介绍动态网页的爬虫! AJAX动态加载网页 一、什么是动态网页 所谓的动态网页是指跟静态网页相对的一种网页编程技术。静态网页随着html代码的生成页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。而动态网页则不然页面代码虽然没有变但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。——来源百度百科 动态网页具有减少工作量、内容更新快、可完成功能多等特点被很多公司所采用比如狗东、某宝、某瓣、某乎等等。 二、什么是AJAX 随着人们对动态网页加载速度的要求越来越高AJAX技术应运而生并成为许多站点的首选。AJAX是一种用于创建快速动态网页的技术通过在后台与服务器进行少量数据交换使网页实现异步更新。这意味着在不重新加载整个网页的情况下可以对网页的某部分进行更新。 三、如何爬取AJAX动态加载网页

  1. 解析接口 只要是有数据发送过来那肯定是有发送到服务器的请求的吧。我们只需找出它悄悄加载出的页面的真实请求即可。特点爬取速度快爬取的数据干净有些网站解析难度较大。
  2. Selenium selenium是什么呢它本来是个自动化测试工具但是被广泛的用户拿去爬虫了。它是一个工具这个工具可以用代码操作浏览器比如控制浏览器的下滑、模拟鼠标点击等。特点代码较简单爬取速度慢容易被封ip。 项目实操 怎么说了那么多理论说实话也不想那么啰嗦。可是吧这些东西经常会被问到干脆直接写下来下次还有人问就直接把这篇文章发给他一劳永逸 我们拿一个法院信息公示网页举例 那我们就开启爬虫的正确姿势吧先用解析接口的方法来写爬虫。 首先找到真实请求。右键检查点击Network选中XHR刷新网页选择Name列表中的jsp文件。没错就这么简单真实请求就藏在里面。 我们再仔细看看这个jsp这简直是个宝啊。有真实请求url有请求方法post有Headers还有Form Data而From Data表示给url传递的参数通过改变参数咱们就可以获得数据 我们再仔细看看这些参数pagesnum参数不就是代表页数嘛我们尝试点击翻页发现只有pagesnum参数会变化。 既然发现了它那就赶紧抓住它。打开PyCharm导入了爬虫所需的库。 1from urllib.parse import urlencode
    2import csv
    3import random
    4import requests
    5import traceback
    6from time import sleep
    7from lxml import etree #lxml为第三方网页解析库强大且速度快
    构造真实请求添加Headers。 1base_url http://www.hshfy.sh.cn/shfy/gweb2017/ktgg_search_content.jsp? #这里要换成对应Ajax请求中的链接 2 3headers { 4 Connection: keep-alive, 5 Accept: /, 6 X-Requested-With: XMLHttpRequest, 7 User-Agent: 你的User-Agent, 8 Origin: http://www.hshfy.sh.cn, 9 Referer: http://www.hshfy.sh.cn/shfy/gweb2017/ktgg_search.jsp?zdsplc,
    10 Accept-Language: zh-CN,zh;q0.9,
    11 Content-Type: application/x-www-form-urlencoded,
    12 Cookie: 你的Cookie
    13}构建get_page函数自变量为page也就是页数。以字典类型创建表单data用post方式去请求网页数据。这里要注意要对返回的数据解码编码为’gbk’否则返回的数据会乱码另外我还加了异常处理优化了下以防意外发生。 1def get_page(page): 2 n 3 3 while True: 4 try: 5 sleep(random.uniform(1, 2)) # 随机出现1-2之间的数包含小数 6 data { 7 yzm: yxAH, 8 ft:, 9 ktrqks: 2020-05-22,
    10 ktrqjs: 2020-06-22,
    11 spc:,
    12 yg:,
    13 bg:,
    14 ah:,
    15 pagesnum: page
    16 }
    17 url base_url urlencode(data)
    18 print(url)
    19 try:
    20 response requests.request(POST,url, headers headers)
    21 #print(response)
    22 if response.status_code 200:
    23 re response.content.decode(gbk)
    24 # print(re)
    25 return re # 解析内容
    26 except requests.ConnectionError as e:
    27 print(Error, e.args) # 输出异常信息
    28 except (TimeoutError, Exception):
    29 n - 1
    30 if n 0:
    31 print(请求3次均失败放弃此url请求,检查请求条件)
    32 return
    33 else:
    34 print(请求失败重新请求)
    35 continue构建parse_page函数对返回的网页数据进行解析用Xpath提取所有字段内容保存为csv格式。有人会问为这么喜欢用Xpath因为简单好用啊 1def parse_page(html): 2 try: 3 parse etree.HTML(html) # 解析网页 4 items parse.xpath(//*[idreport]/tbody/tr) 5 for item in items[1:]: 6 item { 7 a: .join(item.xpath(./td[1]/font/text())).strip(), 8 b: .join(item.xpath(./td[2]/font/text())).strip(), 9 c: .join(item.xpath(./td[3]/text())).strip(),
    10 d: .join(item.xpath(./td[4]/text())).strip(),
    11 e: .join(item.xpath(./td[5]/text())).strip(),
    12 f: .join(item.xpath(./td[6]/div/text())).strip(),
    13 g: .join(item.xpath(./td[7]/div/text())).strip(),
    14 h: .join(item.xpath(./td[8]/text())).strip(),
    15 i: .join(item.xpath(./td[9]/text())).strip()
    16 }
    17 #print(item)
    18 try:
    19 with open(./law.csv, a, encodingutf_8_sig, newline) as fp:
    20 # a为追加模式添加
    21 # utf_8_sig格式导出csv不乱码
    22 fieldnames [a, b, c, d, e,f,g,h,i]
    23 writer csv.DictWriter(fp,fieldnames)
    24 writer.writerow(item)
    25 except Exception:
    26 print(traceback.print_exc()) #代替print e 来输出详细的异常信息
    27 except Exception:
    28 print(traceback.print_exc())最后遍历一下页数调用一下函数。OK搞定 1 for page in range(1,5): #这里设置想要爬取的页数
    2 html get_page(page)
    3 #print(html)
    4 print(第 str(page) 页提取完成)
    我们来看一下最终效果 结 语 总结一下对于AJAX动态加载网页爬虫一般就两种方式解析接口Selenium。这次就先介绍了解析接口方式个人还是推荐解析接口的方式如果解析的是json数据就更好爬了。实在没办法了再用Selenium吧。 最后 如果你对Python感兴趣的话可以试试我整理的这份Python全套学习资料【点击这里】领取 包括Python激活码安装包、Python web开发Python爬虫Python数据分析人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python ① Python所有方向的学习路线图清楚各个方向要学什么东西 ② 100多节Python课程视频涵盖必备基础、爬虫和数据分析 ③ 100多个Python实战案例学习不再是只会理论 ④ 华为出品独家Python漫画教程手机也能学习 ⑤ 历年互联网企业Python面试真题,复习时非常方便******