python爬虫开发之使用python爬虫库请求,urllib与今日头条搜索功能爬取搜索内容实例

  

使用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与今日头条搜索功能爬取搜索内容实例