使用python爬虫库请求,urllib爬取今日头条街拍美图
代码均有注释
进口再保险、json请求,操作系统 从hashlib进口md5 urllib。解析进口urlencode 从请求。异常进口RequestException 从bs4进口BeautifulSoup 从多处理导入池 #请求索引页 def get_page_index(抵消,关键词): #传送的数据 data=https://www.yisu.com/zixun/{“抵消”:抵消, “格式”:“json”, “关键词”:关键字, “自动装载”:“真正的”, “数”:“20”, “cur_tab”: 1 } #自动编码为服务器可识别的url url=" https://www.toutiao.com/search_content/& # 63;“+ urlencode(数据) #异常处理 试一试: #获取返回的网页 响应=requests.get (url) #判断网页的状态码是否正常获取 如果response.status_code==200: #返回解码后的网页 返回response.text #不正常获取,返回没有 回来没有 除了RequestException: #提示信息 打印(“请求索引页出错”) 回来没有 #解析请求的索引网页数据 def parse_page_index (html): # json加载转换 data=https://www.yisu.com/zixun/json.loads (html) #数据为真,并且数据键值存在与数据中 如果数据和'data”data.keys (): #遍历返回图集所在的url 在data.get项目(“数据”): 收益率item.get (“article_url”) #图集详情页请求 def get_page_detail (url): #设置UA,模拟浏览器正常访问 头={ “用户代理”:“Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/63.0.3239.132 Safari/537.36 '} #异常处理 试一试: 响应=requests.get (url,头=头) 如果response.status_code==200: 返回response.text 回来没有 除了RequestException: 打印(“请求详情页出错”) 回来没有 #解析图集详情页的数据 def parse_page_detail (html、url): #异常处理 试一试: #格式转换与图集标题提取 汤=BeautifulSoup (html、lxml的) 标题=soup.select(“标题”)[0].get_text () 打印(标题) #正则查找图集链接 image_pattern=re.compile(陈列室:(* & # 63;)\ n”, re.S) 结果=re.search (image_pattern html) 如果结果: #数据的优化 结果=result.group (1) 结果=结果[12:] 结果=结果(2): #替换 结果=re.sub (r ' \ \ ',”,结果) # json加载 data=https://www.yisu.com/zixun/json.loads(结果) #判断数据不为空,并确保子——图像在其中 如果数据和'sub_images”data.keys (): # sub_images数据提取 sub_images=data.get (“sub_images”) #列表数据提取 图像=[item.get sub_images (url)项) #图片下载 形象的图片:download_images(图片) #返回字典 返回{ “标题”:标题、 “url”: url, “图像”:图像 } 除了例外: 通过 #图片网址请求 def download_images (url): #提示信息 打印(“正在下载”,url) #浏览器模拟 头={ “用户代理”:“Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/63.0.3239.132 Safari/537.36 '} #异常处理 试一试:=响应请求。get (url,标题=头) 如果响应。status_code==200: #图片保存 save_image (response.content) 回来没有 除了RequestException: 打印(“请求图片出错”) 回来没有 #图片保存 def save_image(内容): #判断文件夹是否存在,不存在则创建 如果“街拍”不是os.listdir (): os.makedirs(“街拍”) #设置写入文件所在文件夹位置 os.chdir (' E: \ python写网路爬虫\ CSDN爬虫学习\街拍的) #路径,名称,后缀 file_path=' {0}/{1}, {2} ' .format (os.getcwd (), md5(内容).hexdigest (),“jpg”) #图片保存 张开(file_path wb) f: f.write(内容) f.close () #主函数 def面(抵消): #网页获取 html=get_page_index(抵消,“街拍”) #图集url 在parse_page_index url (html): 如果url !=没有: #图集网页详情 html=get_page_detail (url) #图集内容 结果=parse_page_detail (html、url) if __name__==癬_main__”: #创建访问的列表(0 - 9)页 组=[我* 10的范围内(10)) #创建多线程进程池 池=池() #进程池启动,传入的数据 pool.map(面、组)python爬虫开发之使用python爬虫库请求,urllib与今日头条搜索功能爬取搜索内容实例