在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 如何循環(huán)爬取很多個列表里的很多個詳情頁的內(nèi)容?

如何循環(huán)爬取很多個列表里的很多個詳情頁的內(nèi)容?

#-*- coding:utf-8 -*-

import requests
import re


url_list = ['http://top.chinaz.com/hangye/index_news_{}.html'.format(pages) for pages in range(2, 68)]
url_list.insert(0, 'http://top.chinaz.com/hangye/index_news.html')

main_url = 'http://top.chinaz.com'

url_list_1 = requests.get(url_list[1]) # 打開第一個列表頁
url_list_1.encoding = 'utf-8'
url_list_1 = url_list_1.text # 獲取第一個列表頁內(nèi)容
url_content_all = re.findall('<div class="leftImg"><a name=".*?href="(.*?)">',url_list_1) # 獲取第一個列表頁所有詳情頁鏈接
url_content_0 = requests.get(main_url + url_content_all[0]) # 拼接第一個列表頁的第一個詳情頁地址
url_content_0.encoding = 'utf-8'
url_content_0 = url_content_0.text # 獲取第一個列表頁的第一個詳情頁內(nèi)容
website_0 = re.search('<h2 class="h2Title fl">(.*?)</h2>',url_content_0).group(1) # 獲取網(wǎng)站名稱
weburl_0 = re.search('<h2 class="h2Title fl">.*?</h2><p.*?href="(.*?)" target="_blank" >.*?</a>',url_content_0).group(1) # 獲取網(wǎng)站 url
webdescription_0 = re.search('<p class="webIntro">(.*?)</p>',url_content_0).group(1) # 獲取網(wǎng)站url

print('網(wǎng)站名稱:' + website_0)
print('網(wǎng)址:' + weburl_0)
print('網(wǎng)站簡介:' + webdescription_0)

以上,代碼只是獲取第一個列表頁的第一個詳情頁的內(nèi)容??偣灿?67 個列表頁,1340 個詳情頁,如果按照這種方法寫...這種要怎么封裝或者循環(huán)呢?

回答
編輯回答
短嘆

大概是這樣:

import requests
import re

url_list = ['http://top.chinaz.com/hangye/index_news.html']
url_list.extend(['http://top.chinaz.com/hangye/index_news_{}.html'.format(pages) for pages in range(2, 68)])

DOMAIN = 'http://top.chinaz.com'

def parse_detail(url):
    full_url = DOMAIN + url
    print('process:', full_url)
    res = requests.get(full_url)
    res.encoding = 'utf-8'
    content = res.text
    web_name = re.search('<h2 class="h2Title fl">(.*?)</h2>', content).group(1)
    web_url = re.search('<h2 class="h2Title fl">.*?</h2><p.*?href="(.*?)" target="_blank" >.*?</a>', content).group(1)
    web_description = re.search('<p class="webIntro">(.*?)</p>', content).group(1)
    print('網(wǎng)站名稱:' + web_name)
    print('網(wǎng)址:' + web_url)
    print('網(wǎng)站簡介:' + web_description)

for url in url_list:
    print('list:', url)
    res = requests.get(url)
    res.encoding = 'utf-8'
    content = res.text
    detail_urls = re.findall('<div class="leftImg"><a name=".*?href="(.*?)">', content)

    for url in detail_urls:
        parse_detail(url)

我回答過的問題: Python-QA

2018年6月3日 01:22