cuốn sách gpt4 ai đã làm

python - BeautifulSoup - không thể tạo tệp csv và văn bản sau khi quét

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 14:56:52 25 4
mua khóa gpt4 Nike

Tôi đang cố trích xuất URL của bài viết từ tất cả các trang của trang web. Chỉ URL trong trang đầu tiên được thu thập thông tin nhiều lần và được lưu trữ trong tệp csv. Thông tin từ các liên kết này lại được thu thập thông tin theo cách tương tự và được lưu trữ trong các tệp văn bản.

Cần một số trợ giúp về vấn đề này.

yêu cầu nhập khẩu
từ nhập bs4 BeautifulSoup
import csv
nhập lxml
nhập urllib2

base_url = 'https://www.marketingweek.com/?s=big+data'
phản hồi = request.get(base_url)
súp = BeautifulSoup(response.content, "lxml")

độ phân giải = []

trong khi 1:
search_results = soup.find('div', class_='archive-constraint') #bản địa hóa cửa sổ tìm kiếm với các liên kết bài viết
Article_link_tags = search_results.findAll('a') #sơ đồ thông thường đi xa hơn
res.append([url['href'] cho url trong bài viết_link_tags])
#Tự động nhấp vào nút tiếp theo để tải các bài viết khác
next_button = soup.find('a', text='>>')
#Tìm kiếm bài viết cho đến khi không tìm thấy nút Tiếp theo
nếu không phải next_button:
break
res.append([url['href'] cho url trong bài viết_link_tags])
súp = BeautifulSoup(response.text, "lxml")
cho tôi trong res:
cho j trong tôi:
in(j)
####Lưu trữ các liên kết cóp nhặt trong tệp csv###

với open('StoreUrl1.csv', 'w+') là f:
f.seek(0)
cho tôi trong res:
cho j trong tôi:
f.write('\n'.join(i))


#######Trích xuất thông tin từ URL########

với open('StoreUrl1.csv', 'rb') là f1:
f1.seek(0)
reader = csv.reader(f1)

cho dòng trong đầu đọc:
url = dòng[0]
súp = BeautifulSoup(urllib2.urlopen(url), "lxml")

với open('InfoOutput1.txt', 'a+') là f2:
cho thẻ trong súp.find_all('p'):
f2.write(tag.text.encode('utf-8') + '\n')

câu trả lời hay nhất

Giải pháp sử dụng trình phân tích cú pháp html của lxml.

Tổng cộng có 361 trang, mỗi trang có 12 liên kết. Chúng tôi có thể lặp qua từng trang và trích xuất các liên kết bằng xpath.

xpath giúp có được:

  • Văn bản dưới một thẻ cụ thể
  • Giá trị của một thẻ cụ thể (ở đây: giá trị của thuộc tính "href" của thẻ "a")

    import csv
    từ lxml nhập html
    từ lúc nhập giấc ngủ
    yêu cầu nhập khẩu
    từ randint nhập khẩu ngẫu nhiên

    đầu raFile = open("All_links.csv", r'wb')
    fileWriter = csv.writer(outputFile)

    fileWriter.writerow(["Sl. No.", "Số trang", "Liên kết"])

    url1 = 'https://www.marketingweek.com/page/'
    url2 = '/?s=big+data'

    sl_no = 1

    #lặp từ trang 1 đến trang 361
    cho tôi trong xrange(1, 362):

    #tạo url cuối cùng được loại bỏ bằng số trang
    url = url1 + str(i) + url2

    #Đang tìm nạp trang
    phản hồi = request.get(url)
    ngủ(randint(10, 20))
    #sử dụng trình phân tích cú pháp html
    htmlContent = html.fromstring(response.content)

    #Capturing tất cả các thẻ 'a' trong thẻ h2 với lớp 'hentry-title entry-title'
    page_links = htmlContent.xpath('//div[@class = "archive-constraint"]//h2[@class = "hentry-title entry-title"]/a/@href')
    cho page_link trong page_links:
    fileWriter.writerow([sl_no, i, page_link])
    sl_no += 1

Về python - BeautifulSoup - không thể tạo tệp csv và văn bản sau khi quét, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/45477874/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress