盖得化工----requests/bs4---采集二级网址
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门
https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6EmUbbW&id=564564604865
# -*- coding: utf-8 -*-
"""
Created on Mon May 9 09:14:32 2016 @author: Administrator
"""
import requests,bs4,csv,time,selenium,random
from selenium import webdriver
from selenium.webdriver.common.keys import Keys site_hubei="http://china.guidechem.com/suppliers/list_catid-21_area-%E6%B9%96%E5%8C%97"
pages_hubei=31
#所有公司的链接网址_存储列表
list_corporation_link=[] def Get_sites(site,pages):
list_pages=[]
for page in range(1,pages+1):
thePage=site+"-"+"p"+str(page)+".html"
list_pages.append(thePage) return list_pages #采集一页所有公司的二级网址
def Get_secondLinks(pageSite):
res=requests.get(pageSite)
soup=bs4.BeautifulSoup(res.text,"lxml")
linkElems=soup.select(".dblue")
secondLinks=[i.get("href") for i in linkElems] return secondLinks #了正确格式写入网页到csv, row内容添加一个索引号
#'http://show.guidechem.com/hbsthcsales/'处理为[1,'http://show.guidechem.com/hbsthcsales/']
def List_process(list1):
len_list1=len(list1)
list2=[]
for i in range(len_list1):
content=(i+1,list1[i])
list2.append(content)
return list2 #把一页内容写入csv文档 ,list_tableContent为二维列表[[a],[b],[c]]
def Write_table_to_csv(fileName,list_tableContent):
#对列表格式修改,字符串写入的格式不对
file=open(fileName,'w',newline='')
writer1=csv.writer(file)
writer1.writerows(list_tableContent)
file.close() #构造所有湖北页面网址
list_pages_hubei=Get_sites(site_hubei,pages_hubei)
#首页
firstPage=list_pages_hubei[0] #获取所有二级网址,先测试前十,所有页数:len(list_pages_hubei)
#正常语句for i in range(len(list_pages_hubei)):
for i in range(20,len(list_pages_hubei)):
pageSite=list_pages_hubei[i]
secondLinks=Get_secondLinks(pageSite)
secondLinks1=List_process(secondLinks)
fileName=str(i+1)+".csv"
Write_table_to_csv(fileName,secondLinks1)
list_corporation_link.append(secondLinks1)
time.sleep(random.randint(5,10))
成功采下来,但网站有反爬虫设置,翻页时间要延长
更换ip就搞定了,但有一个网址采集失败,延长时间10-15秒翻页更准确
盖得化工----requests/bs4---采集二级网址的更多相关文章
- 盖得化工--selenium翻页测试
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件)
python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件) requests是一个Python第三方库,用于向URL地址发起请求 bs4 全名 BeautifulSoup4, ...
- requests bs4 爬取 资讯 图片
#!/usr/bin/env python # Version = 3.5.2 # __auth__ = '无名小妖' import requests from bs4 import Beautifu ...
- requests + bs4 爬取豌豆荚所有应用的信息
1.分析豌豆荚的接口的规律 - 获取所有app的接口url 2.往每一个接口发送请求,获取json数据 解析并提取想要的数据 app_data: 1.图标 app_img_url 2.名字 app_n ...
- Python+Requests+Bs4(解析)爬取某诗词信息(数据分析二)
1.环境安装 - 需要将pip源设置为国内源,阿里源.豆瓣源.网易源等 - windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %appdata% (3)在这里面新建一个 ...
- requests+bs4爬取豌豆荚排行榜及下载排行榜app
爬取排行榜应用信息 爬取豌豆荚排行榜app信息 - app_detail_url - 应用详情页url - app_image_url - 应用图片url - app_name - 应用名称 - ap ...
- 采集化工内容写入TXT文本
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- requests+django+bs4实现一个web微信的功能
前言: 今天我们利用requests模块+django+bs4浏览器来实现一个web微信的基本功能,主要实现的功能如下 a.实现返回二维码 b.实现手机扫码后二维码变成变成头像 c.实现手机点击登陆成 ...
- 使用requests爬取梨视频、bilibili视频、汽车之家,bs4遍历文档树、搜索文档树,css选择器
今日内容概要 使用requests爬取梨视频 requests+bs4爬取汽车之家 bs4遍历文档树 bs4搜索文档树 css选择器 内容详细 1.使用requests爬取梨视频 # 模拟发送http ...
随机推荐
- Java 类的加载
package com.cwcec.p2; class C { public static final int SIZE; static { SIZE = 100; System.out.printl ...
- php配置虚拟主机
在httpd.conf的目录下,新建一个配置文件virtualhost-host.conf,添加虚拟主机配置 <VirtualHost *:80> DocumentRoot "E ...
- PHP使用MySQL实现消息队列
消息队列常用在流量削峰(秒杀场景),异步通信等地方. 大体的结构如下: 类似于消费者和生产者的关系,首先生产者在消息队列未满的时候,才将生产的产品放进消息队列中:消费者在消息队列不为空的时候,才从消息 ...
- Java 修饰符顺序问题
What is a reasonable order of Java modifiers (abstract, final, public, static, etc.)? http://stackov ...
- 自动化运维python学习笔记一
Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...
- Get请求,Post请求乱码问题解决方案
下面以两种常见的请求方式为例讲解乱码问题的解决方法. 1.Post方式请求乱码. 自从Tomcat5.x以来,Get方式和Post方式提交的请求,tomcat会采用不同的方式来处理编码. 对于Post ...
- html 塊 div span
塊級元素:元素結束后,另起一行:如p,table,h1,ul,ol 內聯元素:元素結束后,不會另起一行:如a,td.image.b <div>是塊級元素,div本身沒有含義,div是htm ...
- CSS兼容性详解
前面的话 对于前端工程师来说,不想面对又不得不面对的一个问题就是兼容性.在几年之前,处理兼容性,一般地就是处理IE低版本浏览器的兼容性.而近几年,随着移动端的发展,工程师也需要注意手机兼容性了.本文将 ...
- python---面对对象的组合
组合 给一个类的对象封装一个属性,这个属性是另一个类的对象,这样我们在调用这个属性时就指向了另一个类的对象,这样我们就可以调用另一个类的方法. 模拟英雄联盟写一个游戏人物的类# 要求:# (1)创建一 ...
- Linux共享库LD_LIBRARY_PATH与ld.so.conf
1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到 2. 想往上面两个目录以外加东西的时候, ...