[Python] - Có thể dùng multithreading với Requests hay không?

Discussion in 'Linux - PHP - Python - C# - Java' started by DVince, Mar 1, 2018.

?

Nên dùng gì để crawl data trong Python

  1. Requests, BeautifulSoup

    50.0%
  2. Scrapy

    50.0%
  1. DVince

    DVince Khách Qua Đường

    Em chào mọi người,

    Như title ạ. Mọi người cho em hỏi đã ai sử dụng Requests để crawl data từ web chưa ạ? Và có dùng multithreading được không? Vì em thử thì thấy nó không khác gì so với single threading cả. Và đọc trên document của Requests thì nó bảo như này:
    Mọi người cho em xin ý kiến thảo luận cách crawl data bằng requests với multithreading hoặc cách khác hiệu quả hơn với ạ.
    Em cảm ơn.
     
  2. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Mấy thằng như python, C# thì chắc chắn có hỗ trợ đa luồng chứ.
     
  3. DVince

    DVince Khách Qua Đường

    Vâng python vẫn dùng đa luồng được ạ. Cơ bản cái module Requests không biết nó có hỗ trợ đa luồng hay không? Vậy nên e mới đang thắc mắc.
     
  4. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Yên tâm là có nhé cậu. Đọc kĩ docs của nó chăc chắn có hd xài đa luồng đó
     
  5. console

    console Bang Chúng

    Scrapy cho nó nhanh :D
     
  6. DVince

    DVince Khách Qua Đường

  7. console

    console Bang Chúng

  8. money

    money Hương Chủ

    Xài phone thì check Stay login là hết.
     
  9. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Chụp giúp tấm hình để mình fix nà
     
  10. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Chụp giúp tấm hình để mình fix nà
     
  11. Trần Trọng Bách

    Trần Trọng Bách Sơ Nhập Giang Hồ

    Dùng được bạn. Thử code này xem sao:

    from multiprocessing.dummy import Pool as ThreadPool
    pool = ThreadPool(10)
    def multi_edit():
    urls = [] # list url
    htmls = pool.map(action, urls) # list html được crawl
    pool.close()
    pool.join()

    def action(url):
    response = requests.get(url)
    return response.text
     
  12. console

    console Bang Chúng

    Het roi hehe :D
     
  13. Luxifer

    Luxifer Sơ Nhập Giang Hồ

    Hình như bạn hiểu sai ý của đoạn trích ở trên nên đặt câu hỏi không ăn nhậu gì nhau cả. Đoạn trích muốn nói Requests ko hỗ non-blocking ở chính bản thân nó khi xử lý 1 HTTP request. Vì vậy, nếu bạn muốn tăng số lượng crawler thì hoàn toàn có thể xài Threading hoặc Multi Processing.
     
    Hoa Mãn Lâu likes this.
  14. console

    console Bang Chúng

    Chua te dia nguc noi gi cung dung :D
     
  15. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Để làm thêm anh Ngọc Hoàng vô cân kèo với chúa tể địa ngục {baffle}{baffle}
     
  16. Luxifer

    Luxifer Sơ Nhập Giang Hồ

    Mình là luxifer, ko phải lucifer :D
     
  17. money

    money Hương Chủ

    Cũng rứa cả thôi. Lucifer trước khi thành quỷ Satan thì cũng là Tổng lãnh thiên thần mà. Chống lại lời Chúa dạy mới sa ngã rồi bị anh em Michael quất cho sml xuống địa ngục.
    Nay Lucifer đã tiến hóa thành Luxifer nhưng vẫn bị lộ footprint {look_down}{look_down}{look_down}
     
  18. money

    money Hương Chủ

    Phải làm kèo Michael, Gabriel, ... mới cân nổi Chúa tể địa ngục. Anh Ngọc Hoàng là của phương Đông, anh không sang được thần thoại phương Tây đâu :D
     
  19. Luxifer

    Luxifer Sơ Nhập Giang Hồ

    Mấy chú đi xa quá. Để tui đổi tên. : ))